morley-1.16.1: Developer tools for the Michelson Language
Safe HaskellNone
LanguageHaskell2010

Morley.Michelson.TypeCheck.TypeCheckedOp

Synopsis

Documentation

type TypeCheckedInstr = InstrAbstract TypeCheckedOp Source #

Represents a root of a partially typed operation tree.

data TypeCheckedOp where Source #

Represents nodes of a partially typed operation tree.

Constructors

WellTypedOp :: (SingI inp, SingI out) => Instr inp out -> TypeCheckedOp

Constructs well-typed node.

IllTypedOp :: IllTypedInstr -> TypeCheckedOp

Constructs ill-typed node which might in turn contain well-typed and non-typed operations.

data IllTypedInstr Source #

Represents a non-well-typed operation

Constructors

SemiTypedInstr TypeCheckedInstr

Constructs a partialy typed operation.

NonTypedInstr ExpandedOp

Constructs a completely untyped operation.

Instances

Instances details
Eq IllTypedInstr Source # 
Instance details

Defined in Morley.Michelson.TypeCheck.TypeCheckedOp

Generic IllTypedInstr Source # 
Instance details

Defined in Morley.Michelson.TypeCheck.TypeCheckedOp

Associated Types

type Rep IllTypedInstr :: Type -> Type #

NFData TypeCheckedOp => NFData IllTypedInstr Source # 
Instance details

Defined in Morley.Michelson.TypeCheck.TypeCheckedOp

Methods

rnf :: IllTypedInstr -> () #

type Rep IllTypedInstr Source # 
Instance details

Defined in Morley.Michelson.TypeCheck.TypeCheckedOp

type Rep IllTypedInstr = D1 ('MetaData "IllTypedInstr" "Morley.Michelson.TypeCheck.TypeCheckedOp" "morley-1.16.1-inplace" 'False) (C1 ('MetaCons "SemiTypedInstr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 TypeCheckedInstr)) :+: C1 ('MetaCons "NonTypedInstr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 ExpandedOp)))

someInstrToOp :: SomeInstr inp -> TypeCheckedOp Source #

Makes a well-typed node out of SomeInstr

someViewToOp :: View' op -> SomeView st -> View' TypeCheckedOp Source #

Makes a view with well-typed code, taking the untyped and typechecked view.