module Language.Haskell.Brittany.Internal.Prelude ( module E ) where import Control.Applicative as E (Alternative(..), Applicative(..)) import Control.Arrow as E ((&&&), (***), (<<<), (>>>), first, second) import Control.Concurrent as E (forkIO, forkOS, threadDelay) import Control.Concurrent.Chan as E (Chan) import Control.Concurrent.MVar as E (MVar, newEmptyMVar, newMVar, putMVar, readMVar, swapMVar, takeMVar) import Control.Exception as E (assert, bracket, evaluate) import Control.Monad as E ( (<$!>) , (<=<) , (=<<) , (>=>) , Functor(..) , Monad(..) , MonadPlus(..) , filterM , forM , forM_ , forever , guard , join , liftM , liftM2 , liftM3 , liftM4 , liftM5 , mapM , mapM_ , replicateM , replicateM_ , sequence , sequence_ , unless , void , when ) import Control.Monad.Extra as E (allM, andM, anyM, ifM, notM, orM, unlessM, whenM) import Control.Monad.IO.Class as E (MonadIO(..)) import Control.Monad.ST as E (ST) import Control.Monad.Trans.Class as E (lift) import Control.Monad.Trans.Maybe as E (MaybeT(..)) import Control.Monad.Trans.MultiRWS as E (MonadMultiReader(..), MonadMultiState(..), MonadMultiWriter(..), mGet) import Data.Bifunctor as E (bimap) import Data.Bool as E (Bool(..)) import Data.Char as E (Char, chr, ord) import Data.Data as E (toConstr) import Data.Either as E (Either(..), either) import Data.Foldable as E (asum, fold, foldl', foldr') import Data.Function as E ((&), fix) import Data.Functor as E (($>)) import Data.Functor.Identity as E (Identity(..)) import Data.IORef as E (IORef) import Data.Int as E (Int) import Data.List as E ( all , break , drop , dropWhile , elem , filter , find , intercalate , intersperse , isPrefixOf , isSuffixOf , iterate , length , mapAccumL , mapAccumR , maximum , minimum , notElem , nub , null , partition , repeat , replicate , sortBy , sum , take , takeWhile , transpose , uncons , unzip , zip , zip3 , zipWith ) import Data.List.Extra as E (nubOrd, stripSuffix) import Data.List.NonEmpty as E (NonEmpty(..), nonEmpty) import Data.Map as E (Map) import Data.Maybe as E (Maybe(..), catMaybes, fromMaybe, listToMaybe, maybe, maybeToList) import Data.Monoid as E ( All(..) , Alt(..) , Any(..) , Endo(..) , Monoid(..) , Product(..) , Sum(..) , mconcat ) import Data.Ord as E (Down(..), Ordering(..), comparing) import Data.Proxy as E (Proxy(..)) import Data.Ratio as E ((%), Ratio, Rational, denominator, numerator) import Data.Semigroup as E ((<>), Semigroup(..)) import Data.Sequence as E (Seq) import Data.Set as E (Set) import Data.String as E (String) import Data.Text as E (Text) import Data.Tree as E (Tree(..)) import Data.Tuple as E (swap) import Data.Typeable as E (Typeable) import Data.Version as E (showVersion) import Data.Void as E (Void) import Data.Word as E (Word, Word32) import Debug.Trace as E ( trace , traceIO , traceId , traceM , traceShow , traceShowId , traceShowM , traceStack ) import Foreign.ForeignPtr as E (ForeignPtr) import Foreign.Storable as E (Storable) import GHC.Exts as E (Constraint) import GHC.Hs.Extension as E (GhcPs) import GHC.Types.Name.Reader as E (RdrName) import Prelude as E ( ($) , ($!) , (&&) , (++) , (.) , (<$>) , Bounded(..) , Double , Enum(..) , Eq(..) , Float , Floating(..) , Foldable , Fractional(..) , Integer , Integral(..) , Num(..) , Ord(..) , RealFloat(..) , RealFrac(..) , Show(..) , Traversable , (^) , and , any , const , curry , error , flip , foldl , foldr , foldr1 , fromIntegral , fst , head , id , map , not , or , otherwise , print , putStr , putStrLn , realToFrac , reverse , seq , snd , subtract , traverse , uncurry , undefined , (||) ) import System.IO as E (IO, hFlush, stdout) import Text.Read as E (readMaybe)