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

Maintainer bastiaan.heeren@ou.nl provisional portable (depends on ghc) None Haskell2010

Domain.Math.Data.Relation

Description

Synopsis

# Type class

class Functor f => Relational f where Source #

Minimal complete definition

Methods

leftHandSide :: f a -> a Source #

rightHandSide :: f a -> a Source #

flipSides :: f a -> f a Source #

constructor :: f a -> b -> b -> f b Source #

isSymmetric :: f a -> Bool Source #

Instances
 Source # Instance detailsDefined in Domain.Math.Data.Relation MethodsleftHandSide :: Inequality a -> a Source #rightHandSide :: Inequality a -> a Source #constructor :: Inequality a -> b -> b -> Inequality b Source # Source # Instance detailsDefined in Domain.Math.Data.Relation MethodsleftHandSide :: Equation a -> a Source #rightHandSide :: Equation a -> a Source #constructor :: Equation a -> b -> b -> Equation b Source # Source # Instance detailsDefined in Domain.Math.Data.Relation MethodsleftHandSide :: Relation a -> a Source #rightHandSide :: Relation a -> a Source #constructor :: Relation a -> b -> b -> Relation b Source #

# Relation data type

data Relation a Source #

Instances

# Inequality

data Inequality a Source #

Constructors

 a :<: a infix 1 a :>: a infix 1 a :<=: a infix 1 a :>=: a infix 1
Instances
 Source # Instance detailsDefined in Domain.Math.Data.Relation Methodsfmap :: (a -> b) -> Inequality a -> Inequality b #(<\$) :: a -> Inequality b -> Inequality a # Source # Instance detailsDefined in Domain.Math.Data.Relation Methodsfold :: 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 # Source # Instance detailsDefined in Domain.Math.Data.Relation Methodstraverse :: 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) # Source # Instance detailsDefined in Domain.Math.Data.Relation MethodsleftHandSide :: Inequality a -> a Source #rightHandSide :: Inequality a -> a Source #constructor :: Inequality a -> b -> b -> Inequality b Source # Show a => Show (Inequality a) Source # Instance detailsDefined in Domain.Math.Data.Relation MethodsshowsPrec :: Int -> Inequality a -> ShowS #show :: Inequality a -> String #showList :: [Inequality a] -> ShowS # Arbitrary a => Arbitrary (Inequality a) Source # Instance detailsDefined in Domain.Math.Data.Relation Methodsshrink :: Inequality a -> [Inequality a] # Source # Instance detailsDefined in Domain.Math.Data.Relation Methodscoarbitrary :: Inequality a -> Gen b -> Gen b # IsTerm a => IsTerm (Inequality a) Source # Instance detailsDefined in Domain.Math.Data.Relation MethodstoTerm :: Inequality a -> Term #toTermList :: [Inequality a] -> Term #fromTerm :: MonadPlus m => Term -> m (Inequality a) #fromTermList :: MonadPlus m => Term -> m [Inequality a] #