module Cgm.Prelude (
counting,
module Control.Applicative,
module Control.Arrow,
module Control.Monad,
module Control.Exception,
module Control.Category,
module Data.Traversable,
module Data.Foldable,
module Data.Monoid,
module Data.List,
module Data.Function,
module Data.Ord,
module Prelude,
module Cgm.Control.Combinators,
module Cgm.Control.InFunctor,
module Cgm.Data.Tagged,
module Cgm.Data.Bool
) where
import Prelude hiding (
catch, ioError, appendFile, foldr, all, and, any, concat, concatMap, elem,
foldl, foldr1, notElem, or, mapM, sequence, mapM_, sequence_, foldl1,
maximum, minimum, product, sum, id,(.))
import Control.Applicative
import Control.Arrow
import Control.Exception
import Control.Monad hiding (
mapM,sequence,forM,mapM_,sequence_,forM_,msum,Monad(..),(=<<),Functor(..))
import Data.Traversable
import Data.Foldable
import Data.Monoid hiding (Sum(..))
import Data.List hiding (
foldr,all,and,any,concat,concatMap,elem,foldl,foldr1
, notElem,or,foldl1,maximum,minimum,product,sum,find,foldl'
, maximumBy,minimumBy,mapAccumL,mapAccumR,null
, (++),map,(!!),break,cycle,drop,dropWhile,filter
, head,init,iterate,last,length,lookup,repeat,replicate
, reverse,scanl,scanl1,scanr,scanr1,span,splitAt,tail,take
, takeWhile,unzip,unzip3,zip,zip3,zipWith,zipWith3,lines
, unlines,unwords,words )
import Data.Function hiding ((.),($),const,flip,id)
import Data.Ord (comparing)
import Control.Category
import Cgm.Control.Combinators
import Cgm.Control.InFunctor
import Cgm.Data.Tagged
import Cgm.Data.Bool
counting :: (Num a, Enum a) => a -> [a]
counting a = [0 .. pred a]