Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- type TypeCheckedInstr op = InstrAbstract [] (TypeCheckedOp op)
- data TypeCheckedOp op where
- WellTypedOp :: SomeSingInstr -> TypeCheckedOp op
- IllTypedOp :: [IllTypedInstr op] -> TypeCheckedOp op
- MixedOp :: Nesting -> SomeSingInstr -> [IllTypedInstr op] -> TypeCheckedOp op
- data IllTypedInstr op
- = SemiTypedInstr (TypeCheckedInstr op)
- | NonTypedInstr op
- | IllTypedNest [IllTypedInstr op]
- data Nesting
- data SomeSingInstr where
- SomeSingInstr :: (SingI inp, SingI out) => Instr inp out -> SomeSingInstr
- someInstrToOp :: SomeTcInstr inp -> TypeCheckedOp op
- someViewToOp :: SomeView st -> View' (TypeCheckedOp op)
- withSomeTcInstr :: SomeTcInstr inp -> (forall out. (SingI inp, SingI out) => Instr inp out -> r) -> r
Documentation
type TypeCheckedInstr op = InstrAbstract [] (TypeCheckedOp op) Source #
Represents a root of a partially typed operation tree.
data TypeCheckedOp op where Source #
Represents nodes of a partially typed operation tree.
WellTypedOp :: SomeSingInstr -> TypeCheckedOp op | Constructs well-typed node. |
IllTypedOp :: [IllTypedInstr op] -> TypeCheckedOp op | Constructs ill-typed node which might in turn contain well-typed and non-typed operations. |
MixedOp :: Nesting -> SomeSingInstr -> [IllTypedInstr op] -> TypeCheckedOp op | Partially typed sequence of operations. Used exclusively for error-reporting.
|
Instances
Functor TypeCheckedOp Source # | |
Defined in Morley.Michelson.TypeCheck.TypeCheckedOp fmap :: (a -> b) -> TypeCheckedOp a -> TypeCheckedOp b # (<$) :: a -> TypeCheckedOp b -> TypeCheckedOp a # | |
Show op => Show (TypeCheckedOp op) Source # | |
Defined in Morley.Michelson.TypeCheck.TypeCheckedOp showsPrec :: Int -> TypeCheckedOp op -> ShowS # show :: TypeCheckedOp op -> String # showList :: [TypeCheckedOp op] -> ShowS # | |
NFData op => NFData (TypeCheckedOp op) Source # | |
Defined in Morley.Michelson.TypeCheck.TypeCheckedOp rnf :: TypeCheckedOp op -> () # | |
Eq op => Eq (TypeCheckedOp op) Source # | |
Defined in Morley.Michelson.TypeCheck.TypeCheckedOp (==) :: TypeCheckedOp op -> TypeCheckedOp op -> Bool # (/=) :: TypeCheckedOp op -> TypeCheckedOp op -> Bool # | |
RenderDoc op => RenderDoc (TypeCheckedOp op) Source # | |
Defined in Morley.Michelson.TypeCheck.TypeCheckedOp renderDoc :: RenderContext -> TypeCheckedOp op -> Doc Source # isRenderable :: TypeCheckedOp op -> Bool Source # |
data IllTypedInstr op Source #
Represents a non-well-typed operation
SemiTypedInstr (TypeCheckedInstr op) | Constructs a partially typed operation. |
NonTypedInstr op | Constructs a completely untyped operation. |
IllTypedNest [IllTypedInstr op] | Nested sequence of ill-typed operations. |
Instances
Instances
data SomeSingInstr where Source #
SomeSingInstr :: (SingI inp, SingI out) => Instr inp out -> SomeSingInstr |
Instances
Show SomeSingInstr Source # | |
Defined in Morley.Michelson.TypeCheck.TypeCheckedOp showsPrec :: Int -> SomeSingInstr -> ShowS # show :: SomeSingInstr -> String # showList :: [SomeSingInstr] -> ShowS # | |
NFData SomeSingInstr Source # | |
Defined in Morley.Michelson.TypeCheck.TypeCheckedOp rnf :: SomeSingInstr -> () # | |
Eq SomeSingInstr Source # | |
Defined in Morley.Michelson.TypeCheck.TypeCheckedOp (==) :: SomeSingInstr -> SomeSingInstr -> Bool # (/=) :: SomeSingInstr -> SomeSingInstr -> Bool # |
someInstrToOp :: SomeTcInstr inp -> TypeCheckedOp op Source #
Makes a well-typed node out of SomeTcInstr
someViewToOp :: SomeView st -> View' (TypeCheckedOp op) Source #
Makes takes a typed view and converts it into an untyped one with typechecked code.
withSomeTcInstr :: SomeTcInstr inp -> (forall out. (SingI inp, SingI out) => Instr inp out -> r) -> r Source #
Extracts Instr
from SomeTcInstr
and passes it to a continuation.