// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

library dart.collection;

import 'dart:_collection-dev';

part 'collections.dart';
part 'iterator.dart';
part 'maps.dart';
part 'queue.dart';
part 'splay_tree.dart';
part 'hash_table.dart';
part 'hash_set.dart';
part 'hash_map.dart';
part 'linked_hash_table.dart';
part 'linked_hash_set.dart';
part 'linked_hash_map.dart';
