| Maintainer | bastiaan.heeren@ou.nl |
|---|---|
| Stability | provisional |
| Portability | portable (depends on ghc) |
| Safe Haskell | None |
| Language | Haskell2010 |
Domain.Math.Data.Relation
Description
Synopsis
- class Functor f => Relational f where
- data Relation a
- relationType :: Relation a -> RelationType
- data RelationType
- relationSymbols :: [(RelationType, (String, Symbol))]
- notRelation :: Relation a -> Relation a
- eval :: (Ord a, Num a) => RelationType -> a -> a -> Bool
- makeType :: RelationType -> a -> a -> Relation a
- (.==.) :: a -> a -> Relation a
- (./=.) :: a -> a -> Relation a
- (.<.) :: a -> a -> Relation a
- (.>.) :: a -> a -> Relation a
- (.<=.) :: a -> a -> Relation a
- (.>=.) :: a -> a -> Relation a
- (.~=.) :: a -> a -> Relation a
- type Equations a = [Equation a]
- data Equation a = a :==: a
- equationView :: View (Relation a) (Equation a)
- data Inequality a
- inequalityView :: View (Relation a) (Inequality a)
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
| Relational Inequality Source # | |
Defined in Domain.Math.Data.Relation Methods leftHandSide :: Inequality a -> a Source # rightHandSide :: Inequality a -> a Source # flipSides :: Inequality a -> Inequality a Source # constructor :: Inequality a -> b -> b -> Inequality b Source # isSymmetric :: Inequality a -> Bool Source # | |
| Relational Equation Source # | |
Defined in Domain.Math.Data.Relation | |
| Relational Relation Source # | |
Defined in Domain.Math.Data.Relation | |
Relation data type
Instances
| Functor Relation Source # | |
| Foldable Relation Source # | |
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 # elem :: Eq a => a -> Relation a -> Bool # maximum :: Ord a => Relation a -> a # minimum :: Ord a => Relation a -> a # | |
| Traversable Relation Source # | |
Defined in Domain.Math.Data.Relation | |
| Relational Relation Source # | |
Defined in Domain.Math.Data.Relation | |
| Eq a => Eq (Relation a) Source # | |
| Ord a => Ord (Relation a) Source # | |
Defined in Domain.Math.Data.Relation | |
| Show a => Show (Relation a) Source # | |
| Arbitrary a => Arbitrary (Relation a) Source # | |
| CoArbitrary a => CoArbitrary (Relation a) Source # | |
Defined in Domain.Math.Data.Relation Methods coarbitrary :: Relation a -> Gen b -> Gen b | |
| IsTerm a => IsTerm (Relation a) Source # | |
Defined in Domain.Math.Data.Relation Methods toTermList :: [Relation a] -> Term fromTerm :: MonadPlus m => Term -> m (Relation a) fromTermList :: MonadPlus m => Term -> m [Relation a] | |
relationType :: Relation a -> RelationType Source #
data RelationType Source #
Constructors
| EqualTo | |
| NotEqualTo | |
| LessThan | |
| GreaterThan | |
| LessThanOrEqualTo | |
| GreaterThanOrEqualTo | |
| Approximately |
Instances
relationSymbols :: [(RelationType, (String, Symbol))] Source #
notRelation :: Relation a -> Relation a Source #
Constructor functions
makeType :: RelationType -> a -> a -> Relation a Source #
Equation (or equality)
Constructors
| a :==: a infix 1 |
Instances
| Functor Equation Source # | |
| Foldable Equation Source # | |
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 # elem :: Eq a => a -> Equation a -> Bool # maximum :: Ord a => Equation a -> a # minimum :: Ord a => Equation a -> a # | |
| Traversable Equation Source # | |
Defined in Domain.Math.Data.Relation | |
| Relational Equation Source # | |
Defined in Domain.Math.Data.Relation | |
| Eq a => Eq (Equation a) Source # | |
| Ord a => Ord (Equation a) Source # | |
Defined in Domain.Math.Data.Relation | |
| Show a => Show (Equation a) Source # | |
| Arbitrary a => Arbitrary (Equation a) Source # | |
| CoArbitrary a => CoArbitrary (Equation a) Source # | |
Defined in Domain.Math.Data.Relation Methods coarbitrary :: Equation a -> Gen b -> Gen b | |
| IsTerm a => IsTerm (Equation a) Source # | |
Defined in Domain.Math.Data.Relation Methods toTermList :: [Equation a] -> Term fromTerm :: MonadPlus m => Term -> m (Equation a) fromTermList :: MonadPlus m => Term -> m [Equation a] | |
equationView :: View (Relation a) (Equation a) Source #
Inequality
data Inequality a Source #
Instances
inequalityView :: View (Relation a) (Inequality a) Source #