{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE CPP #-}
module BasicPrelude
(
module CorePrelude
, module Data.List
, module Control.Monad
, Foldable
(
foldMap
, foldr
, foldr'
, foldl
, foldl'
, foldr1
, foldl1
)
, elem
, maximum
, minimum
, traverse_
, sequenceA_
, for_
, maximumBy
, minimumBy
, Traversable
(
traverse
, sequenceA
, mapM
, sequence
)
, for
, map
, empty
, (++)
, concat
, intercalate
, BasicPrelude.sum
, BasicPrelude.product
, tshow
, fromShow
, read
, readIO
, readFile
, writeFile
, appendFile
, Text.lines
, Text.words
, Text.unlines
, Text.unwords
, textToString
, ltextToString
, fpToText
, fpFromText
, fpToString
, encodeUtf8
, decodeUtf8
, getLine
, getContents
, interact
, Prelude.gcd
, Prelude.lcm
, Prelude.Show (..)
, Prelude.ShowS
, Prelude.shows
, Prelude.showChar
, Prelude.showString
, Prelude.showParen
, Prelude.ReadS
, Prelude.readsPrec
, Prelude.readList
, Prelude.reads
, Prelude.readParen
, Prelude.lex
, readMay
, getChar
, putChar
, readLn
) where
import CorePrelude
import Data.List hiding
(
(++)
, concat
, intercalate
, lines
, words
, unlines
, unwords
, map
, sum
, product
, elem
, foldl
, foldl'
, foldl1
, foldr
, foldr1
, maximum
, minimum
, maximumBy
, minimumBy
)
import Control.Monad hiding
(
mapM
, sequence
)
import Data.Foldable (Foldable(..), elem, maximum, minimum, traverse_, sequenceA_, for_)
import Data.Traversable (Traversable(..), for)
import qualified Data.Text as Text
import qualified Data.Text.IO as Text
import qualified Data.Text.Lazy as LText
import qualified Data.Text.Lazy.IO as LText
import qualified Prelude
import Data.Text.Encoding (encodeUtf8, decodeUtf8With)
import Data.Text.Encoding.Error (lenientDecode)
import qualified Text.Read
#if MIN_VERSION_base(4,10,0)
import Data.Foldable (maximumBy, minimumBy)
#else
maximumBy :: Foldable t => (a -> a -> Ordering) -> t a -> a
maximumBy cmp = foldl1 max'
where max' x y = case cmp x y of
GT -> x
_ -> y
minimumBy :: Foldable t => (a -> a -> Ordering) -> t a -> a
minimumBy cmp = foldl1 min'
where min' x y = case cmp x y of
GT -> y
_ -> x
#endif
map :: (Functor f) => (a -> b) -> f a -> f b
map :: forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
map = forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap
empty :: Monoid w => w
empty :: forall w. Monoid w => w
empty = forall w. Monoid w => w
mempty
{-# DEPRECATED empty "Use mempty" #-}
infixr 5 ++
(++) :: Monoid w => w -> w -> w
++ :: forall w. Monoid w => w -> w -> w
(++) = forall w. Monoid w => w -> w -> w
mappend
concat :: Monoid w => [w] -> w
concat :: forall w. Monoid w => [w] -> w
concat = forall w. Monoid w => [w] -> w
mconcat
intercalate :: Monoid w => w -> [w] -> w
intercalate :: forall w. Monoid w => w -> [w] -> w
intercalate w
xs [w]
xss = forall w. Monoid w => [w] -> w
mconcat (forall a. a -> [a] -> [a]
Data.List.intersperse w
xs [w]
xss)
sum :: (Foldable f, Num a) => f a -> a
sum :: forall (f :: * -> *) a. (Foldable f, Num a) => f a -> a
sum = forall (t :: * -> *) b a.
Foldable t =>
(b -> a -> b) -> b -> t a -> b
Data.Foldable.foldl' forall a. Num a => a -> a -> a
(+) a
0
product :: (Foldable f, Num a) => f a -> a
product :: forall (f :: * -> *) a. (Foldable f, Num a) => f a -> a
product = forall (t :: * -> *) b a.
Foldable t =>
(b -> a -> b) -> b -> t a -> b
Data.Foldable.foldl' forall a. Num a => a -> a -> a
(*) a
1
tshow :: Show a => a -> Text
tshow :: forall a. Show a => a -> Text
tshow = String -> Text
Text.pack forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. forall a. Show a => a -> String
Prelude.show
fromShow :: (Show a, IsString b) => a -> b
fromShow :: forall a b. (Show a, IsString b) => a -> b
fromShow = forall a. IsString a => String -> a
fromString forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. forall a. Show a => a -> String
Prelude.show
read :: Read a => Text -> a
read :: forall a. Read a => Text -> a
read = forall a. Read a => String -> a
Prelude.read forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Text -> String
Text.unpack
readIO :: (MonadIO m, Read a) => Text -> m a
readIO :: forall (m :: * -> *) a. (MonadIO m, Read a) => Text -> m a
readIO = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. forall a. Read a => String -> IO a
Prelude.readIO forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Text -> String
Text.unpack
readFile :: MonadIO m => FilePath -> m Text
readFile :: forall (m :: * -> *). MonadIO m => String -> m Text
readFile = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> IO Text
Text.readFile
writeFile :: MonadIO m => FilePath -> Text -> m ()
writeFile :: forall (m :: * -> *). MonadIO m => String -> Text -> m ()
writeFile String
p = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Text -> IO ()
Text.writeFile String
p
appendFile :: MonadIO m => FilePath -> Text -> m ()
appendFile :: forall (m :: * -> *). MonadIO m => String -> Text -> m ()
appendFile String
p = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. String -> Text -> IO ()
Text.appendFile String
p
textToString :: Text -> Prelude.String
textToString :: Text -> String
textToString = Text -> String
Text.unpack
ltextToString :: LText -> Prelude.String
ltextToString :: LText -> String
ltextToString = LText -> String
LText.unpack
fpToText :: FilePath -> Text
fpToText :: String -> Text
fpToText = String -> Text
Text.pack
{-# DEPRECATED fpToText "Use Data.Text.pack" #-}
fpFromText :: Text -> FilePath
fpFromText :: Text -> String
fpFromText = Text -> String
Text.unpack
{-# DEPRECATED fpFromText "Use Data.Text.unpack" #-}
fpToString :: FilePath -> Prelude.String
fpToString :: String -> String
fpToString = forall {k} (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id
{-# DEPRECATED fpToString "Use id" #-}
decodeUtf8 :: ByteString -> Text
decodeUtf8 :: ByteString -> Text
decodeUtf8 = OnDecodeError -> ByteString -> Text
decodeUtf8With OnDecodeError
lenientDecode
getLine :: MonadIO m => m Text
getLine :: forall (m :: * -> *). MonadIO m => m Text
getLine = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO IO Text
Text.getLine
getContents :: MonadIO m => m LText
getContents :: forall (m :: * -> *). MonadIO m => m LText
getContents = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO IO LText
LText.getContents
interact :: MonadIO m => (LText -> LText) -> m ()
interact :: forall (m :: * -> *). MonadIO m => (LText -> LText) -> m ()
interact = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. (LText -> LText) -> IO ()
LText.interact
readMay :: Read a => Text -> Maybe a
readMay :: forall a. Read a => Text -> Maybe a
readMay = forall a. Read a => String -> Maybe a
Text.Read.readMaybe forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Text -> String
Text.unpack
getChar :: MonadIO m => m Char
getChar :: forall (m :: * -> *). MonadIO m => m Char
getChar = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO IO Char
Prelude.getChar
putChar :: MonadIO m => Char -> m ()
putChar :: forall (m :: * -> *). MonadIO m => Char -> m ()
putChar = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Char -> IO ()
Prelude.putChar
readLn :: (MonadIO m, Read a) => m a
readLn :: forall (m :: * -> *) a. (MonadIO m, Read a) => m a
readLn = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a. Read a => IO a
Prelude.readLn