packages feed

exference-1.6.0.0: environment/Prelude.hs

module Prelude where



data Float
data Double
data Integer
data Ordering




class (Text.Show.Show a, Data.Eq.Eq a) => Num a where
  fromInteger :: Integer -> a

class (Num a, Data.Ord.Ord a) => Real a where
  toRational :: a -> Rational

class Num a => Fractional a where
  fromRational :: Data.Ratio.Rational -> a
  -- omit (/) and recip

class Enum a where
  toEnum :: Data.Int.Int -> a
  fromEnum :: a -> Data.Int.Int
  enumFrom :: a -> [a]
  enumFromThen :: a -> a -> [a]
  enumFromTo :: a -> a -> [a]
  enumFromToThenTo :: a -> a -> a -> [a] -- all these methods might be bad for
                                         -- inference purposes
  -- omit succ, pred

class (Real a, Enum a) => Integral a where
  toInteger :: a -> Integer
  -- omit all other stuff

class (Real a, Fractional a) => RealFrac a where
  truncate :: Integral b => a -> b
  round    :: Integral b => a -> b
  ceiling  :: Integral b => a -> b
  floor    :: Integral b => a -> b
  -- omit properFraction

class Fractional a => Floating a where
  -- omit everything :D

class (RealFrac a, Floating a) => RealFloat a where
  -- omit everything.. this stuff is too obscure; i think we are better of
  -- in the general case without it.

class Bounded a where
  minBound, maxBound :: a -- fun for inference: you get an a for free!
  -- best idea probably to not declare any instances for this type class;
  -- otherwise, this will tank the inference performance.

fromIntegral :: (Integral a, Num b) => a -> b
realToFrac :: (Real a, Fractional b) => a -> b

instance Integral a => Num (Ratio a)
instance Num a => Num (Product a)
instance Num a => Num (Sum a)
instance RealFloat a => Num (Complex a)
instance HasResolution a => Num (Fixed a)

instance Integral a => Real (Ratio a)
instance HasResolution a => Real (Fixed a)

instance Integral a => RealFrac (Ratio a)
instance HasResolution a => RealFrac (Fixed a)

instance Integral a => Fractional (Ratio a)
instance RealFloat a => Fractional (Complex a)
instance HasResolution a => Fractional (Fixed a)

instance RealFloat a => Floating (Complex a)

instance Data.Eq.Eq Float
instance Floating Float
instance Data.Data.Data Float
instance Data.Ord.Ord Float
instance Text.Read.Read Float
instance RealFloat Float
instance GHC.Generics.Generic Float
instance Foreign.Storable.Storable Float
instance Text.Printf.PrintfArg Float

instance Data.Eq.Eq Double
instance Floating Double
instance Data.Data.Data Double
instance Data.Ord.Ord Double
instance Text.Read.Read Double
instance RealFloat Double
instance GHC.Generics.Generic Double
instance Foreign.Storable.Storable Double
instance Text.Printf.PrintfArg Double

instance Enum Integer
instance Data.Eq.Eq Integer
instance Integral Integer
instance Data.Data.Data Integer
instance Num Integer
instance Data.Ord.Ord Integer
instance Text.Read.Read Integer
instance Real Integer
instance Text.Show.Show Integer
instance Data.Ix.Ix Integer
instance Data.Bits.Bits Integer
instance Text.Printf.PrintfArg Integer

instance Bounded Ordering
instance Enum Ordering
instance Data.Eq.Eq Ordering
instance Data.Data.Data Ordering
instance Data.Ord.Ord Ordering
instance Text.Read.Read Ordering
instance Text.Show.Show Ordering
instance Data.Ix.Ix Ordering
instance GHC.Generics.Generic Ordering
instance Data.Monoid.Monoid Ordering