mixed-types-num-0.5.0.0: src/Numeric/MixedTypes/Field.hs
{-# LANGUAGE TemplateHaskell #-}
{-|
Module : Numeric.MixedType.Field
Description : Bottom-up typed division
Copyright : (c) Michal Konecny
License : BSD3
Maintainer : mikkonecny@gmail.com
Stability : experimental
Portability : portable
-}
module Numeric.MixedTypes.Field
(
-- * Field
CanAddSubMulDivBy, Field, OrderedField, OrderedCertainlyField
-- * Division
, module Numeric.MixedTypes.Div
)
where
import Numeric.MixedTypes.PreludeHiding
-- import qualified Prelude as P
import Numeric.CollectErrors ( CN )
-- import qualified Numeric.CollectErrors as CN
-- import Numeric.MixedTypes.Literals
-- import Numeric.MixedTypes.Bool
-- import Numeric.MixedTypes.Eq
import Numeric.MixedTypes.Ord
-- import Numeric.MixedTypes.MinMaxAbs
-- import Numeric.MixedTypes.AddSub
import Numeric.MixedTypes.Ring
import Numeric.MixedTypes.Div
import Numeric.MixedTypes.Power
{----- Field -----}
type CanAddSubMulDivBy t s =
(CanAddSubMulBy t s, CanAddSubMulBy t s, CanDivBy t s)
class
(Ring t,
CanPowBy t Integer, CanPowBy t Int,
CanDivSameType t, CanRecipSameType t,
CanAddSubMulDivBy t Rational,
CanAddSubMulDivBy t Integer,
CanAddSubMulDivBy t Int
)
=>
Field t
instance Field Rational
instance Field (CN Rational)
class
(Field t, OrderedRing t, HasOrder t Rational, HasOrder t Rational)
=> OrderedField t
instance OrderedField Rational
instance OrderedField (CN Rational)
class
(Field t, OrderedCertainlyRing t, HasOrderCertainly t Rational, HasOrderCertainly t Rational)
=> OrderedCertainlyField t
instance OrderedCertainlyField Rational
instance OrderedCertainlyField (CN Rational)