lorentz-0.15.1: EDSL for the Michelson Language
Safe HaskellSafe-Inferred
LanguageHaskell2010

Lorentz.Lambda

Synopsis

Documentation

data WrappedLambda i o Source #

A helper type to construct Lorentz lambda values; Use this for lambda values outside of Lorentz contracts or with push.

Constructors

WrappedLambda (i :-> o) 
RecLambda ((i ++ '[WrappedLambda i o]) :-> o) 

Instances

Instances details
(CanCastTo (ZippedStack inp1) (ZippedStack inp2), CanCastTo (ZippedStack out1) (ZippedStack out2), CanCastTo (ZippedStack (inp1 ++ '[WrappedLambda inp1 out1])) (ZippedStack (inp2 ++ '[WrappedLambda inp2 out2]))) => CanCastTo (WrappedLambda inp1 out1 :: Type) (WrappedLambda inp2 out2 :: Type) Source # 
Instance details

Defined in Lorentz.Lambda

Methods

castDummy :: Proxy (WrappedLambda inp1 out1) -> Proxy (WrappedLambda inp2 out2) -> () Source #

Generic (WrappedLambda i o) Source # 
Instance details

Defined in Lorentz.Lambda

Associated Types

type Rep (WrappedLambda i o) :: Type -> Type #

Methods

from :: WrappedLambda i o -> Rep (WrappedLambda i o) x #

to :: Rep (WrappedLambda i o) x -> WrappedLambda i o #

Show (WrappedLambda i o) Source # 
Instance details

Defined in Lorentz.Lambda

Eq (WrappedLambda i o) Source # 
Instance details

Defined in Lorentz.Lambda

Methods

(==) :: WrappedLambda i o -> WrappedLambda i o -> Bool #

(/=) :: WrappedLambda i o -> WrappedLambda i o -> Bool #

Each '[HasAnnotation] '[ZippedStack i, ZippedStack o] => HasAnnotation (WrappedLambda i o) Source # 
Instance details

Defined in Lorentz.Lambda

MapLorentzInstr (WrappedLambda inp out) Source # 
Instance details

Defined in Lorentz.Lambda

Methods

mapLorentzInstr :: (forall (i :: [Type]) (o :: [Type]). (i :-> o) -> i :-> o) -> WrappedLambda inp out -> WrappedLambda inp out Source #

HasRPCRepr (WrappedLambda i o) Source # 
Instance details

Defined in Lorentz.Lambda

Associated Types

type AsRPC (WrappedLambda i o)

Each '[Typeable :: [Type] -> Constraint, ReifyList TypeHasDoc] '[i, o] => TypeHasDoc (WrappedLambda i o) Source # 
Instance details

Defined in Lorentz.Lambda

Associated Types

type TypeDocFieldDescriptions (WrappedLambda i o) :: FieldDescriptions #

(KnownList i, ZipInstr i, ZipInstr o) => IsoValue (WrappedLambda i o) Source # 
Instance details

Defined in Lorentz.Lambda

Associated Types

type ToT (WrappedLambda i o) :: T #

type Rep (WrappedLambda i o) Source # 
Instance details

Defined in Lorentz.Lambda

type Rep (WrappedLambda i o) = D1 ('MetaData "WrappedLambda" "Lorentz.Lambda" "lorentz-0.15.1-inplace" 'False) (C1 ('MetaCons "WrappedLambda" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (i :-> o))) :+: C1 ('MetaCons "RecLambda" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 ((i ++ '[WrappedLambda i o]) :-> o))))
type AsRPC (WrappedLambda i o) Source # 
Instance details

Defined in Lorentz.Lambda

type AsRPC (WrappedLambda i o) = WrappedLambda i o
type TypeDocFieldDescriptions (WrappedLambda i o) Source # 
Instance details

Defined in Lorentz.Lambda

type ToT (WrappedLambda i o) Source # 
Instance details

Defined in Lorentz.Lambda

type ToT (WrappedLambda i o) = 'TLambda (ToT (ZippedStack i)) (ToT (ZippedStack o))

type Lambda i o = WrappedLambda '[i] '[o] Source #

A type synonym representing Michelson lambdas.

mkLambda :: (IsNotInView => i :-> o) -> WrappedLambda i o Source #

A constructor providing the required constraint for WrappedLambda. This is the only way to construct a lambda that uses operations forbidden in views.

mkLambdaRec :: (IsNotInView => (i ++ '[WrappedLambda i o]) :-> o) -> WrappedLambda i o Source #

A constructor providing the required constraint for WrappedLambda. This is the only way to construct a lambda that uses operations forbidden in views.