1-- |
2-- Module      : Foundation.Collection
3-- License     : BSD-style
4-- Maintainer  : Vincent Hanquez <vincent@snarc.org>
5-- Stability   : experimental
6-- Portability : portable
7--
8-- Different collections (list, vector, string, ..) unified under 1 API.
9-- an API to rules them all, and in the darkness bind them.
10--
11{-# LANGUAGE FlexibleInstances #-}
12module Foundation.Collection
13    ( BoxedZippable(..)
14    , Element
15    , InnerFunctor(..)
16    , Foldable(..)
17    , Fold1able(..)
18    , Mappable(..)
19    , traverse_
20    , mapM_
21    , forM
22    , forM_
23    , Collection(..)
24    , and
25    , or
26    , NonEmpty
27    , getNonEmpty
28    , nonEmpty
29    , nonEmpty_
30    , nonEmptyFmap
31    , Sequential(..)
32    , MutableCollection(..)
33    , IndexedCollection(..)
34    , KeyedCollection(..)
35    , Zippable(..)
36    , Buildable(..)
37    , build_
38    , Builder(..)
39    , BuildingState(..)
40    , Copy(..)
41    ) where
42
43import           Foundation.Collection.Buildable
44import           Foundation.Collection.Element
45import           Foundation.Collection.Foldable
46import           Foundation.Collection.Indexed
47import           Foundation.Collection.InnerFunctor
48import           Foundation.Collection.Keyed
49import           Foundation.Collection.Mutable
50import           Foundation.Collection.Collection
51import           Foundation.Collection.Sequential
52import           Foundation.Collection.Mappable
53import           Foundation.Collection.Zippable
54import           Foundation.Collection.Copy
55