{-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE CPP #-} module CorePrelude ( -- * Standard -- ** Operators (Prelude.$) , (Prelude.$!) , (Prelude.&&) , (Prelude.||) , (Control.Category..) -- ** Functions , Prelude.not , Prelude.otherwise , Prelude.fst , Prelude.snd , Control.Category.id , Prelude.maybe , Prelude.either , Prelude.flip , Prelude.const , Prelude.error , Data.Text.IO.putStrLn , getArgs , Prelude.odd , Prelude.even , Prelude.uncurry , Prelude.curry , Data.Tuple.swap , Prelude.until , Prelude.asTypeOf , Prelude.undefined , Prelude.seq -- ** Type classes , Prelude.Ord (..) , Prelude.Eq (..) , Prelude.Bounded (..) , Prelude.Enum (..) , Prelude.Show , Prelude.Read , Prelude.Functor (..) , Prelude.Monad (..) , (Control.Monad.=<<) -- ** Numeric type classes , Prelude.Num (..) , Prelude.Real (..) , Prelude.Integral (..) , Prelude.Fractional (..) , Prelude.Floating (..) , Prelude.RealFrac (..) , Prelude.RealFloat(..) -- ** Data types , Prelude.Maybe (..) , Prelude.Ordering (..) , Prelude.Bool (..) , Prelude.Char , Prelude.IO , Prelude.Either (..) -- * Re-exports -- ** Packed reps , ByteString , LByteString , Text , LText -- ** Containers , Map , HashMap , Set , HashSet , Vector , UVector , Unbox , Hashable -- ** Numbers , Word , Word8 , Word32 , Word64 , Prelude.Int , Int32 , Int64 , Prelude.Integer , Prelude.Rational , Prelude.Float , Prelude.Double -- ** Numeric functions , (Prelude.^) , (Prelude.^^) , Prelude.subtract , Prelude.fromIntegral , Prelude.realToFrac -- ** Monoids , Monoid (..) , (<>) -- ** Arrow , Control.Arrow.first , Control.Arrow.second , (Control.Arrow.***) , (Control.Arrow.&&&) -- ** Maybe , Data.Maybe.mapMaybe , Data.Maybe.catMaybes , Data.Maybe.fromMaybe -- ** Either , Data.Either.partitionEithers -- ** Ord , Data.Function.on , Data.Ord.comparing , equating -- ** Applicative , Control.Applicative.Applicative (..) , (Control.Applicative.<$>) -- ** Monad , (Control.Monad.>=>) -- ** Transformers , Control.Monad.Trans.Class.lift , Control.Monad.IO.Class.MonadIO , Control.Monad.IO.Class.liftIO -- ** Exceptions , Control.Exception.Exception (..) , Control.Exception.SomeException , Control.Exception.throwIO -- ** Files , F.FilePath , (F.) , (F.<.>) , F.hasExtension , F.basename , F.filename -- ** Print , Prelude.print -- ** Command line args , readArgs ) where import qualified Prelude import Prelude (Char, (.), Eq, Bool) import Data.Hashable (Hashable) import Data.Vector.Unboxed (Unbox) import Data.Monoid (Monoid (..)) import qualified Control.Arrow import Control.Applicative import qualified Control.Category import qualified Control.Monad import qualified Control.Exception import qualified Filesystem.Path.CurrentOS as F import Data.Word (Word8, Word32, Word64, Word) import Data.Int (Int32, Int64) import qualified Data.Text.IO import qualified Data.Maybe import qualified Data.Either import qualified Data.Ord import qualified Data.Function import qualified Data.Tuple import qualified Control.Monad.Trans.Class import qualified Control.Monad.IO.Class import Data.ByteString (ByteString) import qualified Data.ByteString.Lazy import Data.Text (Text) import qualified Data.Text.Lazy import Data.Vector (Vector) import qualified Data.Vector.Unboxed import Data.Map (Map) import Data.Set (Set) import Data.HashMap.Strict (HashMap) import Data.HashSet (HashSet) import ReadArgs (readArgs) import qualified System.Environment import qualified Data.Text import qualified Data.List #if MIN_VERSION_base(4,5,0) import Data.Monoid ((<>)) #endif type LText = Data.Text.Lazy.Text type LByteString = Data.ByteString.Lazy.ByteString type UVector = Data.Vector.Unboxed.Vector #if !MIN_VERSION_base(4,5,0) infixr 6 <> (<>) :: Monoid w => w -> w -> w (<>) = mappend {-# INLINE (<>) #-} #endif equating :: Eq a => (b -> a) -> b -> b -> Bool equating = Data.Function.on (Prelude.==) getArgs :: Prelude.IO [Text] getArgs = Data.List.map Data.Text.pack <$> System.Environment.getArgs