Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- type Parameter = Type
- type Storage = Type
- data Contract op = Contract {}
- data Value op
- = ValueInt Integer
- | ValueString Text
- | ValueBytes InternalByteString
- | ValueUnit
- | ValueTrue
- | ValueFalse
- | ValuePair (Value op) (Value op)
- | ValueLeft (Value op)
- | ValueRight (Value op)
- | ValueSome (Value op)
- | ValueNone
- | ValueNil
- | ValueSeq (NonEmpty $ Value op)
- | ValueMap (NonEmpty $ Elt op)
- | ValueLambda (NonEmpty op)
- data Elt op = Elt (Value op) (Value op)
- data InstrAbstract op
- = EXT (ExtU InstrAbstract op)
- | DROP
- | DUP VarAnn
- | SWAP
- | PUSH VarAnn Type (Value op)
- | SOME TypeAnn VarAnn FieldAnn
- | NONE TypeAnn VarAnn FieldAnn Type
- | UNIT TypeAnn VarAnn
- | IF_NONE [op] [op]
- | PAIR TypeAnn VarAnn FieldAnn FieldAnn
- | CAR VarAnn FieldAnn
- | CDR VarAnn FieldAnn
- | LEFT TypeAnn VarAnn FieldAnn FieldAnn Type
- | RIGHT TypeAnn VarAnn FieldAnn FieldAnn Type
- | IF_LEFT [op] [op]
- | IF_RIGHT [op] [op]
- | NIL TypeAnn VarAnn Type
- | CONS VarAnn
- | IF_CONS [op] [op]
- | SIZE VarAnn
- | EMPTY_SET TypeAnn VarAnn Comparable
- | EMPTY_MAP TypeAnn VarAnn Comparable Type
- | MAP VarAnn [op]
- | ITER [op]
- | MEM VarAnn
- | GET VarAnn
- | UPDATE
- | IF [op] [op]
- | LOOP [op]
- | LOOP_LEFT [op]
- | LAMBDA VarAnn Type Type [op]
- | EXEC VarAnn
- | DIP [op]
- | FAILWITH
- | CAST VarAnn Type
- | RENAME VarAnn
- | PACK VarAnn
- | UNPACK VarAnn Type
- | CONCAT VarAnn
- | SLICE VarAnn
- | ISNAT VarAnn
- | ADD VarAnn
- | SUB VarAnn
- | MUL VarAnn
- | EDIV VarAnn
- | ABS VarAnn
- | NEG
- | LSL VarAnn
- | LSR VarAnn
- | OR VarAnn
- | AND VarAnn
- | XOR VarAnn
- | NOT VarAnn
- | COMPARE VarAnn
- | EQ VarAnn
- | NEQ VarAnn
- | LT VarAnn
- | GT VarAnn
- | LE VarAnn
- | GE VarAnn
- | INT VarAnn
- | SELF VarAnn
- | CONTRACT VarAnn Type
- | TRANSFER_TOKENS VarAnn
- | SET_DELEGATE VarAnn
- | CREATE_ACCOUNT VarAnn VarAnn
- | CREATE_CONTRACT VarAnn VarAnn
- | CREATE_CONTRACT2 VarAnn VarAnn (Contract op)
- | IMPLICIT_ACCOUNT VarAnn
- | NOW VarAnn
- | AMOUNT VarAnn
- | BALANCE VarAnn
- | CHECK_SIGNATURE VarAnn
- | SHA256 VarAnn
- | SHA512 VarAnn
- | BLAKE2B VarAnn
- | HASH_KEY VarAnn
- | STEPS_TO_QUOTA VarAnn
- | SOURCE VarAnn
- | SENDER VarAnn
- | ADDRESS VarAnn
- type Instr = InstrAbstract Op
- newtype Op = Op {}
- type TypeAnn = Annotation TypeTag
- type FieldAnn = Annotation FieldTag
- type VarAnn = Annotation VarTag
- ann :: Text -> Annotation a
- noAnn :: Annotation a
- data Type = Type T TypeAnn
- data Comparable = Comparable CT TypeAnn
- data T
- data CT
- newtype Annotation tag = Annotation Text
- newtype InternalByteString = InternalByteString ByteString
- unInternalByteString :: InternalByteString -> ByteString
- data CustomParserException
- type Parser = ReaderT LetEnv (Parsec CustomParserException Text)
- type Parsec e s = ParsecT e s Identity
- data ParseErrorBundle s e
- data ParserException = ParserException (ParseErrorBundle Text CustomParserException)
- data LetEnv = LetEnv {}
- noLetEnv :: LetEnv
- data UExtInstrAbstract op
- type ParsedInstr = InstrAbstract ParsedOp
- data ParsedOp
- type ParsedUTestAssert = UTestAssert ParsedOp
- type ParsedUExtInstr = UExtInstrAbstract ParsedOp
- type ExpandedInstr = InstrAbstract ExpandedOp
- data ExpandedOp
- type ExpandedUExtInstr = UExtInstrAbstract ExpandedOp
- data PairStruct
- = F (VarAnn, FieldAnn)
- | P PairStruct PairStruct
- data CadrStruct
- data Macro
- = CMP ParsedInstr VarAnn
- | IFX ParsedInstr [ParsedOp] [ParsedOp]
- | IFCMP ParsedInstr VarAnn [ParsedOp] [ParsedOp]
- | FAIL
- | PAPAIR PairStruct TypeAnn VarAnn
- | UNPAIR PairStruct
- | CADR [CadrStruct] VarAnn FieldAnn
- | SET_CADR [CadrStruct] VarAnn FieldAnn
- | MAP_CADR [CadrStruct] VarAnn FieldAnn [ParsedOp]
- | DIIP Integer [ParsedOp]
- | DUUP Integer VarAnn
- | ASSERT
- | ASSERTX ParsedInstr
- | ASSERT_CMP ParsedInstr
- | ASSERT_NONE
- | ASSERT_SOME
- | ASSERT_LEFT
- | ASSERT_RIGHT
- | IF_SOME [ParsedOp] [ParsedOp]
- data ExtInstr
- data TestAssert where
- TestAssert :: (Typeable inp, Typeable out) => Text -> PrintComment -> Instr inp (Tc CBool ': out) -> TestAssert
- data UTestAssert op = UTestAssert {
- tassName :: Text
- tassComment :: PrintComment
- tassInstrs :: [op]
- newtype PrintComment = PrintComment {
- unPrintComment :: [Either Text StackRef]
- data StackTypePattern
- newtype StackRef = StackRef Integer
- newtype MorleyLogs = MorleyLogs {
- unMorleyLogs :: [Text]
- noMorleyLogs :: MorleyLogs
- data StackFn = StackFn {}
- newtype Var = Var Text
- data TyVar
- varSet :: StackTypePattern -> Set Var
- data LetMacro = LetMacro {}
- data LetValue = LetValue {}
- data LetType = LetType {}
Rexported from Michelson.Types
Instances
Functor Contract Source # | |
Eq op => Eq (Contract op) Source # | |
Data op => Data (Contract op) Source # | |
Defined in Michelson.Untyped.Contract gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Contract op -> c (Contract op) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Contract op) # toConstr :: Contract op -> Constr # dataTypeOf :: Contract op -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Contract op)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Contract op)) # gmapT :: (forall b. Data b => b -> b) -> Contract op -> Contract op # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Contract op -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Contract op -> r # gmapQ :: (forall d. Data d => d -> u) -> Contract op -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Contract op -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Contract op -> m (Contract op) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Contract op -> m (Contract op) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Contract op -> m (Contract op) # | |
Show op => Show (Contract op) Source # | |
Generic (Contract op) Source # | |
ToJSON op => ToJSON (Contract op) Source # | |
Defined in Michelson.Untyped.Contract | |
FromJSON op => FromJSON (Contract op) Source # | |
Buildable op => Buildable (Contract op) Source # | |
Defined in Michelson.Untyped.Contract | |
type Rep (Contract op) Source # | |
Defined in Michelson.Untyped.Contract type Rep (Contract op) = D1 (MetaData "Contract" "Michelson.Untyped.Contract" "morley-0.1.0.5-JGwsFje78IP81WIHW6apex" False) (C1 (MetaCons "Contract" PrefixI True) (S1 (MetaSel (Just "para") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Parameter) :*: (S1 (MetaSel (Just "stor") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Storage) :*: S1 (MetaSel (Just "code") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [op])))) |
ValueInt Integer | |
ValueString Text | |
ValueBytes InternalByteString | |
ValueUnit | |
ValueTrue | |
ValueFalse | |
ValuePair (Value op) (Value op) | |
ValueLeft (Value op) | |
ValueRight (Value op) | |
ValueSome (Value op) | |
ValueNone | |
ValueNil | |
ValueSeq (NonEmpty $ Value op) | A sequence of elements: can be a list or a set. We can't distinguish lists and sets during parsing. |
ValueMap (NonEmpty $ Elt op) | |
ValueLambda (NonEmpty op) |
Instances
Instances
Functor Elt Source # | |
Eq op => Eq (Elt op) Source # | |
Data op => Data (Elt op) Source # | |
Defined in Michelson.Untyped.Value gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Elt op -> c (Elt op) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Elt op) # toConstr :: Elt op -> Constr # dataTypeOf :: Elt op -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Elt op)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Elt op)) # gmapT :: (forall b. Data b => b -> b) -> Elt op -> Elt op # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Elt op -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Elt op -> r # gmapQ :: (forall d. Data d => d -> u) -> Elt op -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Elt op -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Elt op -> m (Elt op) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Elt op -> m (Elt op) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Elt op -> m (Elt op) # | |
Show op => Show (Elt op) Source # | |
Generic (Elt op) Source # | |
ToJSON op => ToJSON (Elt op) Source # | |
Defined in Michelson.Untyped.Value | |
FromJSON op => FromJSON (Elt op) Source # | |
Buildable op => Buildable (Elt op) Source # | |
Defined in Michelson.Untyped.Value | |
type Rep (Elt op) Source # | |
Defined in Michelson.Untyped.Value type Rep (Elt op) = D1 (MetaData "Elt" "Michelson.Untyped.Value" "morley-0.1.0.5-JGwsFje78IP81WIHW6apex" False) (C1 (MetaCons "Elt" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Value op)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Value op)))) |
data InstrAbstract op Source #
Michelson instruction with abstract parameter op
. This
parameter is necessary, because at different stages of our pipeline
it will be different. Initially it can contain macros and
non-flattened instructions, but then it contains only vanilla
Michelson instructions.
Instances
type Instr = InstrAbstract Op Source #
Instances
Eq (ExtU InstrAbstract Op) => Eq Op Source # | |
Show (ExtU InstrAbstract Op) => Show Op Source # | |
Generic Op Source # | |
ToJSON Instr => ToJSON Op Source # | |
Defined in Michelson.Untyped.Instr | |
FromJSON Instr => FromJSON Op Source # | |
Buildable Instr => Buildable Op Source # | |
Defined in Michelson.Untyped.Instr | |
Buildable Instr Source # | |
Defined in Morley.Types | |
type Rep Op Source # | |
Defined in Michelson.Untyped.Instr |
type TypeAnn = Annotation TypeTag Source #
type FieldAnn = Annotation FieldTag Source #
type VarAnn = Annotation VarTag Source #
ann :: Text -> Annotation a Source #
noAnn :: Annotation a Source #
Instances
Eq Type Source # | |
Data Type Source # | |
Defined in Michelson.Untyped.Type gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Type -> c Type # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Type # dataTypeOf :: Type -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Type) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Type) # gmapT :: (forall b. Data b => b -> b) -> Type -> Type # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Type -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Type -> r # gmapQ :: (forall d. Data d => d -> u) -> Type -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Type -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Type -> m Type # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Type -> m Type # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Type -> m Type # | |
Show Type Source # | |
Generic Type Source # | |
ToJSON Type Source # | |
Defined in Michelson.Untyped.Type | |
FromJSON Type Source # | |
Buildable Type Source # | |
Defined in Michelson.Untyped.Type | |
type Rep Type Source # | |
Defined in Michelson.Untyped.Type type Rep Type = D1 (MetaData "Type" "Michelson.Untyped.Type" "morley-0.1.0.5-JGwsFje78IP81WIHW6apex" False) (C1 (MetaCons "Type" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 T) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 TypeAnn))) |
data Comparable Source #
Instances
Instances
Instances
Bounded CT Source # | |
Enum CT Source # | |
Eq CT Source # | |
Data CT Source # | |
Defined in Michelson.Untyped.Type gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CT -> c CT # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c CT # dataTypeOf :: CT -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c CT) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c CT) # gmapT :: (forall b. Data b => b -> b) -> CT -> CT # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CT -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CT -> r # gmapQ :: (forall d. Data d => d -> u) -> CT -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> CT -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CT -> m CT # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CT -> m CT # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CT -> m CT # | |
Ord CT Source # | |
Show CT Source # | |
Generic CT Source # | |
ToJSON CT Source # | |
Defined in Michelson.Untyped.Type | |
FromJSON CT Source # | |
Buildable CT Source # | |
Defined in Michelson.Untyped.Type | |
SingI CInt Source # | |
Defined in Michelson.Typed.Sing | |
SingI CNat Source # | |
Defined in Michelson.Typed.Sing | |
SingI CString Source # | |
Defined in Michelson.Typed.Sing | |
SingI CBytes Source # | |
Defined in Michelson.Typed.Sing | |
SingI CMutez Source # | |
Defined in Michelson.Typed.Sing | |
SingI CBool Source # | |
Defined in Michelson.Typed.Sing | |
SingI CKeyHash Source # | |
Defined in Michelson.Typed.Sing | |
SingI CTimestamp Source # | |
Defined in Michelson.Typed.Sing sing :: Sing CTimestamp # | |
SingI CAddress Source # | |
Defined in Michelson.Typed.Sing | |
type Rep CT Source # | |
Defined in Michelson.Untyped.Type type Rep CT = D1 (MetaData "CT" "Michelson.Untyped.Type" "morley-0.1.0.5-JGwsFje78IP81WIHW6apex" False) (((C1 (MetaCons "CInt" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "CNat" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "CString" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "CBytes" PrefixI False) (U1 :: Type -> Type))) :+: ((C1 (MetaCons "CMutez" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "CBool" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "CKeyHash" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "CTimestamp" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "CAddress" PrefixI False) (U1 :: Type -> Type))))) | |
data Sing (a :: CT) Source # | |
Defined in Michelson.Typed.Sing data Sing (a :: CT) where
|
newtype Annotation tag Source #
Instances
newtype InternalByteString Source #
ByteString does not have an instance for ToJSON and FromJSON, to avoid orphan type class instances, make a new type wrapper around it.
Instances
data CustomParserException Source #
Instances
data ParseErrorBundle s e #
A non-empty collection of ParseError
s equipped with PosState
that
allows to pretty-print the errors efficiently and correctly.
Since: megaparsec-7.0.0
Instances
data ParserException Source #
Instances
Show ParserException Source # | |
Defined in Morley.Types showsPrec :: Int -> ParserException -> ShowS # show :: ParserException -> String # showList :: [ParserException] -> ShowS # | |
Exception ParserException Source # | |
Defined in Morley.Types | |
Buildable ParserException Source # | |
Defined in Morley.Types build :: ParserException -> Builder # |
The environment containing lets from the let-block
data UExtInstrAbstract op Source #
Implementation-specific instructions embedded in a NOP
primitive, which
mark a specific point during a contract's typechecking or execution.
These instructions are not allowed to modify the contract's stack, but may impose additional constraints that can cause a contract to report errors in type-checking or testing.
Additionaly, some implementation-specific language features such as
type-checking of LetMacro
s are implemented using this mechanism
(specifically FN
and FN_END
).
STACKTYPE StackTypePattern | Matches current stack against a type-pattern |
FN Text StackFn | Begin a typed stack function (push a |
FN_END | End a stack function (pop a |
UTEST_ASSERT (UTestAssert op) | Copy the current stack and run an inline assertion on it |
UPRINT PrintComment | Print a comment with optional embedded |
Instances
Morley Parsed instruction types
type ParsedInstr = InstrAbstract ParsedOp Source #
Unexpanded instructions produced directly by the ops
parser, which
contains primitive Michelson Instructions, inline-able macros and sequences
Prim ParsedInstr | Primitive Michelson instruction |
Mac Macro | Built-in Michelson macro defined by the specification |
LMac LetMacro | User-defined macro with instructions to be inlined |
Seq [ParsedOp] | A sequence of instructions |
Instances
type ParsedUTestAssert = UTestAssert ParsedOp Source #
Morley Expanded instruction types
type ExpandedInstr = InstrAbstract ExpandedOp Source #
data ExpandedOp Source #
Instances
Michelson Instructions and Instruction Macros
data PairStruct Source #
Instances
data CadrStruct Source #
Instances
Built-in Michelson Macros defined by the specification
Instances
Morley Instructions
Instances
Eq ExtInstr Source # | |
Show ExtInstr Source # | |
Conversible ExtInstr (UExtInstrAbstract ExpandedOp) Source # | |
Defined in Morley.Types |
data TestAssert where Source #
TestAssert :: (Typeable inp, Typeable out) => Text -> PrintComment -> Instr inp (Tc CBool ': out) -> TestAssert |
Instances
Eq TestAssert Source # | |
Defined in Morley.Types (==) :: TestAssert -> TestAssert -> Bool # (/=) :: TestAssert -> TestAssert -> Bool # | |
Show TestAssert Source # | |
Defined in Morley.Types showsPrec :: Int -> TestAssert -> ShowS # show :: TestAssert -> String # showList :: [TestAssert] -> ShowS # |
data UTestAssert op Source #
UTestAssert | |
|
Instances
newtype PrintComment Source #
Instances
data StackTypePattern Source #
A stack pattern-match
Instances
A reference into the stack
Instances
Eq StackRef Source # | |
Data StackRef Source # | |
Defined in Morley.Types gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> StackRef -> c StackRef # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c StackRef # toConstr :: StackRef -> Constr # dataTypeOf :: StackRef -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c StackRef) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c StackRef) # gmapT :: (forall b. Data b => b -> b) -> StackRef -> StackRef # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> StackRef -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> StackRef -> r # gmapQ :: (forall d. Data d => d -> u) -> StackRef -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> StackRef -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> StackRef -> m StackRef # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> StackRef -> m StackRef # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> StackRef -> m StackRef # | |
Show StackRef Source # | |
Generic StackRef Source # | |
ToJSON StackRef Source # | |
Defined in Morley.Types | |
FromJSON StackRef Source # | |
Buildable StackRef Source # | |
Defined in Morley.Types | |
type Rep StackRef Source # | |
Defined in Morley.Types |
newtype MorleyLogs Source #
Morley interpreter state
MorleyLogs | |
|
Instances
Eq MorleyLogs Source # | |
Defined in Morley.Types (==) :: MorleyLogs -> MorleyLogs -> Bool # (/=) :: MorleyLogs -> MorleyLogs -> Bool # | |
Show MorleyLogs Source # | |
Defined in Morley.Types showsPrec :: Int -> MorleyLogs -> ShowS # show :: MorleyLogs -> String # showList :: [MorleyLogs] -> ShowS # | |
Default MorleyLogs Source # | |
Defined in Morley.Types def :: MorleyLogs # | |
Buildable MorleyLogs Source # | |
Defined in Morley.Types build :: MorleyLogs -> Builder # |
A stack function that expresses the type signature of a LetMacro
Instances
Eq StackFn Source # | |
Data StackFn Source # | |
Defined in Morley.Types gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> StackFn -> c StackFn # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c StackFn # toConstr :: StackFn -> Constr # dataTypeOf :: StackFn -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c StackFn) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c StackFn) # gmapT :: (forall b. Data b => b -> b) -> StackFn -> StackFn # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> StackFn -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> StackFn -> r # gmapQ :: (forall d. Data d => d -> u) -> StackFn -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> StackFn -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> StackFn -> m StackFn # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> StackFn -> m StackFn # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> StackFn -> m StackFn # | |
Show StackFn Source # | |
Generic StackFn Source # | |
ToJSON StackFn Source # | |
Defined in Morley.Types | |
FromJSON StackFn Source # | |
Buildable StackFn Source # | |
Defined in Morley.Types | |
type Rep StackFn Source # | |
Defined in Morley.Types type Rep StackFn = D1 (MetaData "StackFn" "Morley.Types" "morley-0.1.0.5-JGwsFje78IP81WIHW6apex" False) (C1 (MetaCons "StackFn" PrefixI True) (S1 (MetaSel (Just "quantifiedVars") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Set Var))) :*: (S1 (MetaSel (Just "inPattern") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 StackTypePattern) :*: S1 (MetaSel (Just "outPattern") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 StackTypePattern)))) |
Instances
Eq Var Source # | |
Data Var Source # | |
Defined in Morley.Types gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Var -> c Var # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Var # dataTypeOf :: Var -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Var) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Var) # gmapT :: (forall b. Data b => b -> b) -> Var -> Var # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Var -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Var -> r # gmapQ :: (forall d. Data d => d -> u) -> Var -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Var -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Var -> m Var # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Var -> m Var # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Var -> m Var # | |
Ord Var Source # | |
Show Var Source # | |
Generic Var Source # | |
ToJSON Var Source # | |
Defined in Morley.Types | |
FromJSON Var Source # | |
Buildable Var Source # | |
Defined in Morley.Types | |
type Rep Var Source # | |
Defined in Morley.Types |
A type-variable or a type-constant
Instances
Eq TyVar Source # | |
Data TyVar Source # | |
Defined in Morley.Types gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TyVar -> c TyVar # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TyVar # dataTypeOf :: TyVar -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TyVar) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TyVar) # gmapT :: (forall b. Data b => b -> b) -> TyVar -> TyVar # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TyVar -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TyVar -> r # gmapQ :: (forall d. Data d => d -> u) -> TyVar -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> TyVar -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> TyVar -> m TyVar # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TyVar -> m TyVar # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TyVar -> m TyVar # | |
Show TyVar Source # | |
Generic TyVar Source # | |
ToJSON TyVar Source # | |
Defined in Morley.Types | |
FromJSON TyVar Source # | |
Buildable TyVar Source # | |
Defined in Morley.Types | |
type Rep TyVar Source # | |
Defined in Morley.Types type Rep TyVar = D1 (MetaData "TyVar" "Morley.Types" "morley-0.1.0.5-JGwsFje78IP81WIHW6apex" False) (C1 (MetaCons "VarID" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Var)) :+: C1 (MetaCons "TyCon" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Type))) |
A programmer-defined macro
Instances
Eq LetMacro Source # | |
Data LetMacro Source # | |
Defined in Morley.Types gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> LetMacro -> c LetMacro # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c LetMacro # toConstr :: LetMacro -> Constr # dataTypeOf :: LetMacro -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c LetMacro) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c LetMacro) # gmapT :: (forall b. Data b => b -> b) -> LetMacro -> LetMacro # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> LetMacro -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> LetMacro -> r # gmapQ :: (forall d. Data d => d -> u) -> LetMacro -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> LetMacro -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> LetMacro -> m LetMacro # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> LetMacro -> m LetMacro # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> LetMacro -> m LetMacro # | |
Show LetMacro Source # | |
Generic LetMacro Source # | |
ToJSON LetMacro Source # | |
Defined in Morley.Types | |
FromJSON LetMacro Source # | |
Buildable LetMacro Source # | |
Defined in Morley.Types | |
type Rep LetMacro Source # | |
Defined in Morley.Types type Rep LetMacro = D1 (MetaData "LetMacro" "Morley.Types" "morley-0.1.0.5-JGwsFje78IP81WIHW6apex" False) (C1 (MetaCons "LetMacro" PrefixI True) (S1 (MetaSel (Just "lmName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Text) :*: (S1 (MetaSel (Just "lmSig") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 StackFn) :*: S1 (MetaSel (Just "lmExpr") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [ParsedOp])))) |
A programmer-defined constant
A programmer-defined type-synonym