morley-0.3.0.1: Developer tools for the Michelson Language

Safe HaskellNone
LanguageHaskell2010

Lorentz.Rebinded

Contents

Description

Reimplementation of some syntax sugar.

You need the following module pragmas to make it work smoothly:

Synopsis

Documentation

(>>) :: (a :-> b) -> (b :-> c) -> a :-> c Source #

Aliases for '(#)' used by do-blocks.

pure :: Applicative f => a -> f a #

Lift a value.

return :: Monad m => a -> m a #

Inject a value into the monadic type.

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.

Constructors

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.

fromLabel :: IsLabel x a => a #