ideas-math-types-1.0: Common types for mathematical domain reasoners

Maintainerbastiaan.heeren@ou.nl
Stabilityprovisional
Portabilityportable (depends on ghc)
Safe HaskellNone
LanguageHaskell2010

Domain.Math.Data.Relation

Contents

Description

 
Synopsis

Type class

Relation data type

data Relation a Source #

Instances
Functor Relation Source # 
Instance details

Defined in Domain.Math.Data.Relation

Methods

fmap :: (a -> b) -> Relation a -> Relation b #

(<$) :: a -> Relation b -> Relation a #

Foldable Relation Source # 
Instance details

Defined in Domain.Math.Data.Relation

Methods

fold :: Monoid m => Relation m -> m #

foldMap :: Monoid m => (a -> m) -> Relation a -> m #

foldr :: (a -> b -> b) -> b -> Relation a -> b #

foldr' :: (a -> b -> b) -> b -> Relation a -> b #

foldl :: (b -> a -> b) -> b -> Relation a -> b #

foldl' :: (b -> a -> b) -> b -> Relation a -> b #

foldr1 :: (a -> a -> a) -> Relation a -> a #

foldl1 :: (a -> a -> a) -> Relation a -> a #

toList :: Relation a -> [a] #

null :: Relation a -> Bool #

length :: Relation a -> Int #

elem :: Eq a => a -> Relation a -> Bool #

maximum :: Ord a => Relation a -> a #

minimum :: Ord a => Relation a -> a #

sum :: Num a => Relation a -> a #

product :: Num a => Relation a -> a #

Traversable Relation Source # 
Instance details

Defined in Domain.Math.Data.Relation

Methods

traverse :: Applicative f => (a -> f b) -> Relation a -> f (Relation b) #

sequenceA :: Applicative f => Relation (f a) -> f (Relation a) #

mapM :: Monad m => (a -> m b) -> Relation a -> m (Relation b) #

sequence :: Monad m => Relation (m a) -> m (Relation a) #

Relational Relation Source # 
Instance details

Defined in Domain.Math.Data.Relation

Eq a => Eq (Relation a) Source # 
Instance details

Defined in Domain.Math.Data.Relation

Methods

(==) :: Relation a -> Relation a -> Bool #

(/=) :: Relation a -> Relation a -> Bool #

Ord a => Ord (Relation a) Source # 
Instance details

Defined in Domain.Math.Data.Relation

Methods

compare :: Relation a -> Relation a -> Ordering #

(<) :: Relation a -> Relation a -> Bool #

(<=) :: Relation a -> Relation a -> Bool #

(>) :: Relation a -> Relation a -> Bool #

(>=) :: Relation a -> Relation a -> Bool #

max :: Relation a -> Relation a -> Relation a #

min :: Relation a -> Relation a -> Relation a #

Show a => Show (Relation a) Source # 
Instance details

Defined in Domain.Math.Data.Relation

Methods

showsPrec :: Int -> Relation a -> ShowS #

show :: Relation a -> String #

showList :: [Relation a] -> ShowS #

Arbitrary a => Arbitrary (Relation a) Source # 
Instance details

Defined in Domain.Math.Data.Relation

Methods

arbitrary :: Gen (Relation a)

shrink :: Relation a -> [Relation a]

CoArbitrary a => CoArbitrary (Relation a) Source # 
Instance details

Defined in Domain.Math.Data.Relation

Methods

coarbitrary :: Relation a -> Gen b -> Gen b

IsTerm a => IsTerm (Relation a) Source # 
Instance details

Defined in Domain.Math.Data.Relation

Methods

toTerm :: Relation a -> Term

toTermList :: [Relation a] -> Term

fromTerm :: MonadPlus m => Term -> m (Relation a)

fromTermList :: MonadPlus m => Term -> m [Relation a]

data RelationType Source #

Instances
Enum RelationType Source # 
Instance details

Defined in Domain.Math.Data.Relation

Eq RelationType Source # 
Instance details

Defined in Domain.Math.Data.Relation

Ord RelationType Source # 
Instance details

Defined in Domain.Math.Data.Relation

Show RelationType Source # 
Instance details

Defined in Domain.Math.Data.Relation

Arbitrary RelationType Source # 
Instance details

Defined in Domain.Math.Data.Relation

CoArbitrary RelationType Source # 
Instance details

Defined in Domain.Math.Data.Relation

Methods

coarbitrary :: RelationType -> Gen b -> Gen b

eval :: (Ord a, Num a) => RelationType -> a -> a -> Bool Source #

Constructor functions

(.==.) :: a -> a -> Relation a infix 1 Source #

(./=.) :: a -> a -> Relation a infix 1 Source #

(.<.) :: a -> a -> Relation a infix 1 Source #

(.>.) :: a -> a -> Relation a infix 1 Source #

(.<=.) :: a -> a -> Relation a infix 1 Source #

(.>=.) :: a -> a -> Relation a infix 1 Source #

(.~=.) :: a -> a -> Relation a infix 1 Source #

Equation (or equality)

type Equations a = [Equation a] Source #

data Equation a Source #

Constructors

a :==: a infix 1 
Instances
Functor Equation Source # 
Instance details

Defined in Domain.Math.Data.Relation

Methods

fmap :: (a -> b) -> Equation a -> Equation b #

(<$) :: a -> Equation b -> Equation a #

Foldable Equation Source # 
Instance details

Defined in Domain.Math.Data.Relation

Methods

fold :: Monoid m => Equation m -> m #

foldMap :: Monoid m => (a -> m) -> Equation a -> m #

foldr :: (a -> b -> b) -> b -> Equation a -> b #

foldr' :: (a -> b -> b) -> b -> Equation a -> b #

foldl :: (b -> a -> b) -> b -> Equation a -> b #

foldl' :: (b -> a -> b) -> b -> Equation a -> b #

foldr1 :: (a -> a -> a) -> Equation a -> a #

foldl1 :: (a -> a -> a) -> Equation a -> a #

toList :: Equation a -> [a] #

null :: Equation a -> Bool #

length :: Equation a -> Int #

elem :: Eq a => a -> Equation a -> Bool #

maximum :: Ord a => Equation a -> a #

minimum :: Ord a => Equation a -> a #

sum :: Num a => Equation a -> a #

product :: Num a => Equation a -> a #

Traversable Equation Source # 
Instance details

Defined in Domain.Math.Data.Relation

Methods

traverse :: Applicative f => (a -> f b) -> Equation a -> f (Equation b) #

sequenceA :: Applicative f => Equation (f a) -> f (Equation a) #

mapM :: Monad m => (a -> m b) -> Equation a -> m (Equation b) #

sequence :: Monad m => Equation (m a) -> m (Equation a) #

Relational Equation Source # 
Instance details

Defined in Domain.Math.Data.Relation

Eq a => Eq (Equation a) Source # 
Instance details

Defined in Domain.Math.Data.Relation

Methods

(==) :: Equation a -> Equation a -> Bool #

(/=) :: Equation a -> Equation a -> Bool #

Ord a => Ord (Equation a) Source # 
Instance details

Defined in Domain.Math.Data.Relation

Methods

compare :: Equation a -> Equation a -> Ordering #

(<) :: Equation a -> Equation a -> Bool #

(<=) :: Equation a -> Equation a -> Bool #

(>) :: Equation a -> Equation a -> Bool #

(>=) :: Equation a -> Equation a -> Bool #

max :: Equation a -> Equation a -> Equation a #

min :: Equation a -> Equation a -> Equation a #

Show a => Show (Equation a) Source # 
Instance details

Defined in Domain.Math.Data.Relation

Methods

showsPrec :: Int -> Equation a -> ShowS #

show :: Equation a -> String #

showList :: [Equation a] -> ShowS #

Arbitrary a => Arbitrary (Equation a) Source # 
Instance details

Defined in Domain.Math.Data.Relation

Methods

arbitrary :: Gen (Equation a)

shrink :: Equation a -> [Equation a]

CoArbitrary a => CoArbitrary (Equation a) Source # 
Instance details

Defined in Domain.Math.Data.Relation

Methods

coarbitrary :: Equation a -> Gen b -> Gen b

IsTerm a => IsTerm (Equation a) Source # 
Instance details

Defined in Domain.Math.Data.Relation

Methods

toTerm :: Equation a -> Term

toTermList :: [Equation a] -> Term

fromTerm :: MonadPlus m => Term -> m (Equation a)

fromTermList :: MonadPlus m => Term -> m [Equation a]

Inequality

data Inequality a Source #

Constructors

a :<: a infix 1 
a :>: a infix 1 
a :<=: a infix 1 
a :>=: a infix 1 
Instances
Functor Inequality Source # 
Instance details

Defined in Domain.Math.Data.Relation

Methods

fmap :: (a -> b) -> Inequality a -> Inequality b #

(<$) :: a -> Inequality b -> Inequality a #

Foldable Inequality Source # 
Instance details

Defined in Domain.Math.Data.Relation

Methods

fold :: Monoid m => Inequality m -> m #

foldMap :: Monoid m => (a -> m) -> Inequality a -> m #

foldr :: (a -> b -> b) -> b -> Inequality a -> b #

foldr' :: (a -> b -> b) -> b -> Inequality a -> b #

foldl :: (b -> a -> b) -> b -> Inequality a -> b #

foldl' :: (b -> a -> b) -> b -> Inequality a -> b #

foldr1 :: (a -> a -> a) -> Inequality a -> a #

foldl1 :: (a -> a -> a) -> Inequality a -> a #

toList :: Inequality a -> [a] #

null :: Inequality a -> Bool #

length :: Inequality a -> Int #

elem :: Eq a => a -> Inequality a -> Bool #

maximum :: Ord a => Inequality a -> a #

minimum :: Ord a => Inequality a -> a #

sum :: Num a => Inequality a -> a #

product :: Num a => Inequality a -> a #

Traversable Inequality Source # 
Instance details

Defined in Domain.Math.Data.Relation

Methods

traverse :: Applicative f => (a -> f b) -> Inequality a -> f (Inequality b) #

sequenceA :: Applicative f => Inequality (f a) -> f (Inequality a) #

mapM :: Monad m => (a -> m b) -> Inequality a -> m (Inequality b) #

sequence :: Monad m => Inequality (m a) -> m (Inequality a) #

Relational Inequality Source # 
Instance details

Defined in Domain.Math.Data.Relation

Show a => Show (Inequality a) Source # 
Instance details

Defined in Domain.Math.Data.Relation

Arbitrary a => Arbitrary (Inequality a) Source # 
Instance details

Defined in Domain.Math.Data.Relation

Methods

arbitrary :: Gen (Inequality a)

shrink :: Inequality a -> [Inequality a]

CoArbitrary a => CoArbitrary (Inequality a) Source # 
Instance details

Defined in Domain.Math.Data.Relation

Methods

coarbitrary :: Inequality a -> Gen b -> Gen b

IsTerm a => IsTerm (Inequality a) Source # 
Instance details

Defined in Domain.Math.Data.Relation

Methods

toTerm :: Inequality a -> Term

toTermList :: [Inequality a] -> Term

fromTerm :: MonadPlus m => Term -> m (Inequality a)

fromTermList :: MonadPlus m => Term -> m [Inequality a]