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

Lorentz.Lambda

Synopsis

Documentation

newtype WrappedLambda i o Source #

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

The primary reason this is a newtype and not a type synonym is to avoid accidentally splicing the output of mkLambda in-line.

Constructors

WrappedLambda 

Fields

Instances

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

Defined in Lorentz.Coercions

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 #

HasAnnotation (i :-> o) => HasAnnotation (WrappedLambda i o) Source # 
Instance details

Defined in Lorentz.Lambda

MapLorentzInstr (WrappedLambda i o) Source # 
Instance details

Defined in Lorentz.Lambda

Methods

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

HasRPCRepr (i :-> o) => 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.Doc

Associated Types

type TypeDocFieldDescriptions (WrappedLambda i o) :: FieldDescriptions #

IsoValue (a :-> b) => IsoValue (WrappedLambda a b) Source # 
Instance details

Defined in Lorentz.Lambda

Associated Types

type ToT (WrappedLambda a b) :: 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.14.1-inplace" 'True) (C1 ('MetaCons "WrappedLambda" 'PrefixI 'True) (S1 ('MetaSel ('Just "unWrappedLambda") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (i :-> o))))
type AsRPC (WrappedLambda i o) Source # 
Instance details

Defined in Lorentz.Lambda

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

Defined in Lorentz.Doc

type ToT (WrappedLambda a b) Source # 
Instance details

Defined in Lorentz.Lambda

type ToT (WrappedLambda a b) = ToT (a :-> b)

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.