Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell98 |
This module provides several ways to cope with over-determined values.
Documentation
Instances
C (Forbid a) Source # | |
C (Ignore a) Source # | |
Eq a => C (Verify a) Source # | |
Eq a => C (TrackedNumber a) Source # | |
Defined in UniqueLogic.ST.Example.Verify accept :: TrackedNumber a -> TrackedNumber a -> Bool Source # | |
(C a, C b) => C (a, b) Source # | |
Defined in UniqueLogic.ST.Duplicate | |
(C a, C b, C c) => C (a, b, c) Source # | |
Defined in UniqueLogic.ST.Duplicate |
Ignore duplicate ways to determine a variable. The chosen value depends on the particular algorithm.
Ignore a |
Instances
Floating a => Floating (Ignore a) Source # | |
Defined in UniqueLogic.ST.Duplicate sqrt :: Ignore a -> Ignore a # (**) :: Ignore a -> Ignore a -> Ignore a # logBase :: Ignore a -> Ignore a -> Ignore a # asin :: Ignore a -> Ignore a # acos :: Ignore a -> Ignore a # atan :: Ignore a -> Ignore a # sinh :: Ignore a -> Ignore a # cosh :: Ignore a -> Ignore a # tanh :: Ignore a -> Ignore a # asinh :: Ignore a -> Ignore a # acosh :: Ignore a -> Ignore a # atanh :: Ignore a -> Ignore a # log1p :: Ignore a -> Ignore a # expm1 :: Ignore a -> Ignore a # | |
Num a => Num (Ignore a) Source # | |
Fractional a => Fractional (Ignore a) Source # | |
Show a => Show (Ignore a) Source # | |
Eq a => Eq (Ignore a) Source # | |
Ord a => Ord (Ignore a) Source # | |
Defined in UniqueLogic.ST.Duplicate | |
C (Ignore a) Source # | |
Duplicate ways to determine a variable value
are always considered an error.
If you use Rule
s or Expression
s this is not a good idea,
since every rule is over-determined.
Forbid a |
Instances
Floating a => Floating (Forbid a) Source # | |
Defined in UniqueLogic.ST.Duplicate sqrt :: Forbid a -> Forbid a # (**) :: Forbid a -> Forbid a -> Forbid a # logBase :: Forbid a -> Forbid a -> Forbid a # asin :: Forbid a -> Forbid a # acos :: Forbid a -> Forbid a # atan :: Forbid a -> Forbid a # sinh :: Forbid a -> Forbid a # cosh :: Forbid a -> Forbid a # tanh :: Forbid a -> Forbid a # asinh :: Forbid a -> Forbid a # acosh :: Forbid a -> Forbid a # atanh :: Forbid a -> Forbid a # log1p :: Forbid a -> Forbid a # expm1 :: Forbid a -> Forbid a # | |
Num a => Num (Forbid a) Source # | |
Fractional a => Fractional (Forbid a) Source # | |
Show a => Show (Forbid a) Source # | |
Eq a => Eq (Forbid a) Source # | |
Ord a => Ord (Forbid a) Source # | |
Defined in UniqueLogic.ST.Duplicate | |
C (Forbid a) Source # | |
Duplicate ways to determine a variable value are allowed
as long as every way yields the same result.
"Same" is meant with respect to the Eq
class.
Verify a |
Instances
Floating a => Floating (Verify a) Source # | |
Defined in UniqueLogic.ST.Duplicate sqrt :: Verify a -> Verify a # (**) :: Verify a -> Verify a -> Verify a # logBase :: Verify a -> Verify a -> Verify a # asin :: Verify a -> Verify a # acos :: Verify a -> Verify a # atan :: Verify a -> Verify a # sinh :: Verify a -> Verify a # cosh :: Verify a -> Verify a # tanh :: Verify a -> Verify a # asinh :: Verify a -> Verify a # acosh :: Verify a -> Verify a # atanh :: Verify a -> Verify a # log1p :: Verify a -> Verify a # expm1 :: Verify a -> Verify a # | |
Num a => Num (Verify a) Source # | |
Fractional a => Fractional (Verify a) Source # | |
Show a => Show (Verify a) Source # | |
Eq a => Eq (Verify a) Source # | |
Ord a => Ord (Verify a) Source # | |
Defined in UniqueLogic.ST.Duplicate | |
Eq a => C (Verify a) Source # | |