morley-0.3.0.1: Developer tools for the Michelson Language

Safe HaskellNone
LanguageHaskell2010

Lorentz.Base

Description

Foundation of Lorentz development.

Synopsis

Documentation

newtype (inp :: [Type]) :-> (out :: [Type]) infixr 1 Source #

Alias for instruction which hides inner types representation via T.

Constructors

I 

Fields

Instances
Eq (inp :-> out) Source # 
Instance details

Defined in Lorentz.Base

Methods

(==) :: (inp :-> out) -> (inp :-> out) -> Bool #

(/=) :: (inp :-> out) -> (inp :-> out) -> Bool #

Show (inp :-> out) Source # 
Instance details

Defined in Lorentz.Base

Methods

showsPrec :: Int -> (inp :-> out) -> ShowS #

show :: (inp :-> out) -> String #

showList :: [inp :-> out] -> ShowS #

IsoValue (Lambda inp out) Source # 
Instance details

Defined in Lorentz.Base

Associated Types

type ToT (Lambda inp out) :: T Source #

Methods

toVal :: Lambda inp out -> Value (ToT (Lambda inp out)) Source #

fromVal :: Value (ToT (Lambda inp out)) -> Lambda inp out Source #

(SingI (ToT cp), SingI (ToT st), NoOperation cp, NoOperation st, NoBigMap cp, CanHaveBigMap st) => IsContract (Contract cp st) Source # 
Instance details

Defined in Lorentz.Discover

type ToT (Lambda inp out) Source # 
Instance details

Defined in Lorentz.Base

type ToT (Lambda inp out) = TLambda (ToT inp) (ToT out)

type (%>) = (:->) infixr 1 Source #

Alias for :->, seems to make signatures more readable sometimes.

Let's someday decide which one of these two should remain.

type (&) (a :: Type) (b :: [Type]) = a ': b infixr 2 Source #

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

compileLorentz :: (inp :-> out) -> Instr (ToTs inp) (ToTs out) Source #

For use outside of Lorentz.

compileLorentzContract :: forall cp st. (NoOperation cp, NoOperation st, NoBigMap cp, CanHaveBigMap st) => Contract cp st -> Instr '[ToT (cp, st)] '[ToT ([Operation], st)] Source #

Version of compileLorentz specialized to instruction corresponding to contract code.

printLorentzContract :: forall cp st. (SingI (ToT cp), SingI (ToT st), NoOperation cp, NoOperation st, NoBigMap cp, CanHaveBigMap st) => Contract cp st -> LText Source #

type ContractOut st = '[([Operation], st)] Source #

type Contract cp st = '[(cp, st)] :-> ContractOut st Source #

type Lambda i o = '[i] :-> '[o] Source #