Safe Haskell | None |
---|---|
Language | Haskell2010 |
Reimplementation of some syntax sugar.
You need the following module pragmas to make it work smoothly:
Synopsis
- (>>) :: (a :-> b) -> (b :-> c) -> a :-> c
- pure :: Applicative f => a -> f a
- return :: Monad m => a -> m a
- ifThenElse :: Condition st arg argl argr -> (argl :-> o) -> (argr :-> o) -> arg :-> o
- data Condition st arg argl argr where
- Holds :: Condition s (Bool ': s) s s
- IsSome :: Condition s (Maybe a ': s) (a ': s) s
- IsNone :: Condition s (Maybe a ': s) s (a ': s)
- IsLeft :: Condition s (Either l r ': s) (l ': s) (r ': s)
- IsRight :: Condition s (Either l r ': s) (r ': s) (l ': s)
- IsCons :: Condition s ([a] ': s) (a ': ([a] ': s)) s
- IsNil :: Condition s ([a] ': s) s (a ': ([a] ': s))
- IsZero :: (UnaryArithOpHs Eq' a, UnaryArithResHs Eq' a ~ Bool) => Condition s (a ': s) s s
- IsNotZero :: (UnaryArithOpHs Eq' a, UnaryArithResHs Eq' a ~ Bool) => Condition s (a ': s) s s
- IsEq :: IfCmpXConstraints a b Eq' => Condition s (a ': (b ': s)) s s
- IsNeq :: IfCmpXConstraints a b Neq => Condition s (a ': (b ': s)) s s
- IsLt :: IfCmpXConstraints a b Lt => Condition s (a ': (b ': s)) s s
- IsGt :: IfCmpXConstraints a b Gt => Condition s (a ': (b ': s)) s s
- IsLe :: IfCmpXConstraints a b Le => Condition s (a ': (b ': s)) s s
- IsGe :: IfCmpXConstraints a b Ge => Condition s (a ': (b ': s)) s s
- fromInteger :: Num a => Integer -> a
- fromString :: IsString a => String -> a
- fromLabel :: IsLabel x a => a
Documentation
pure :: Applicative f => a -> f a #
Lift a value.
ifThenElse :: Condition st arg argl argr -> (argl :-> o) -> (argr :-> o) -> arg :-> o Source #
Defines semantics of if ... then ... else ...
construction.
data Condition st arg argl argr where Source #
Predicate for if ... then .. else ...
construction,
defines a kind of operation applied to the top elements of the current stack.
Holds :: Condition s (Bool ': s) s s | |
IsSome :: Condition s (Maybe a ': s) (a ': s) s | |
IsNone :: Condition s (Maybe a ': s) s (a ': s) | |
IsLeft :: Condition s (Either l r ': s) (l ': s) (r ': s) | |
IsRight :: Condition s (Either l r ': s) (r ': s) (l ': s) | |
IsCons :: Condition s ([a] ': s) (a ': ([a] ': s)) s | |
IsNil :: Condition s ([a] ': s) s (a ': ([a] ': s)) | |
IsZero :: (UnaryArithOpHs Eq' a, UnaryArithResHs Eq' a ~ Bool) => Condition s (a ': s) s s | |
IsNotZero :: (UnaryArithOpHs Eq' a, UnaryArithResHs Eq' a ~ Bool) => Condition s (a ': s) s s | |
IsEq :: IfCmpXConstraints a b Eq' => Condition s (a ': (b ': s)) s s | |
IsNeq :: IfCmpXConstraints a b Neq => Condition s (a ': (b ': s)) s s | |
IsLt :: IfCmpXConstraints a b Lt => Condition s (a ': (b ': s)) s s | |
IsGt :: IfCmpXConstraints a b Gt => Condition s (a ': (b ': s)) s s | |
IsLe :: IfCmpXConstraints a b Le => Condition s (a ': (b ': s)) s s | |
IsGe :: IfCmpXConstraints a b Ge => Condition s (a ': (b ': s)) s s |
Re-exports required for RebindableSyntax
fromInteger :: Num a => Integer -> a #
Conversion from an Integer
.
An integer literal represents the application of the function
fromInteger
to the appropriate value of type Integer
,
so such literals have type (
.Num
a) => a
fromString :: IsString a => String -> a #