// 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 'iterable.dart';
part 'iterator.dart';
part 'maps.dart';
part 'queue.dart';
part 'splay_tree.dart';
part 'hash_set.dart';
part 'hash_map.dart';
part 'list.dart';
part 'linked_hash_set.dart';
part 'linked_hash_map.dart';
