{-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies #-} module Yi.Prelude ( (++), (=<<), Double, Char, Either(..), Endom, Eq(..), Fractional(..), Functor(..), IO, Integer, Integral(..), Bounded(..), Enum(..), Maybe(..), Monad(..), Num(..), Ord(..), Read(..), Real(..), ReaderT(..), SemiNum(..), String, fromIntegral, fst, fst3, head, init, io, last, lookup, module Control.Applicative, module Data.Bool, module Data.Foldable, module Data.Function, module Data.Int, module Data.Traversable, module Text.Show, module Yi.Debug, null, print, putStrLn, replicate, read, seq, snd, snd3, tail, trd3, undefined, unlines, when, ) where import Yi.Debug import Text.Show import Data.Bool import Data.Foldable import Data.Function import Data.Int import Control.Monad.Reader import Control.Applicative import Data.Traversable import Control.Monad type Endom a = a -> a io :: MonadIO m => IO a -> m a io = liftIO fst3 :: (a,b,c) -> a fst3 (x,_,_) = x snd3 :: (a,b,c) -> b snd3 (_,x,_) = x trd3 :: (a,b,c) -> c trd3 (_,_,x) = x class SemiNum absolute relative | absolute -> relative where (+~) :: absolute -> relative -> absolute (-~) :: absolute -> relative -> absolute (~-) :: absolute -> absolute -> relative