packages feed

morley 1.16.1 → 1.16.2

raw patch · 9 files changed

+360/−13 lines, 9 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

+ Morley.Micheline.Expression: _ExpressionBytes :: Prism' Expression ByteString
+ Morley.Micheline.Expression: _ExpressionInt :: Prism' Expression Integer
+ Morley.Micheline.Expression: _ExpressionSeq :: Prism' Expression [Expression]
+ Morley.Micheline.Expression: _ExpressionString :: Prism' Expression Text
+ Morley.Micheline.Expression: instance Language.Haskell.TH.Syntax.Lift Morley.Micheline.Expression.Annotation
+ Morley.Micheline.Expression: instance Language.Haskell.TH.Syntax.Lift Morley.Micheline.Expression.Expression
+ Morley.Micheline.Expression: instance Language.Haskell.TH.Syntax.Lift Morley.Micheline.Expression.MichelinePrimAp
+ Morley.Micheline.Expression: instance Language.Haskell.TH.Syntax.Lift Morley.Micheline.Expression.MichelinePrimitive
+ Morley.Micheline.Expression: mpaArgsL :: Lens' MichelinePrimAp [Expression]
+ Morley.Micheline.Expression: mpaPrimL :: Lens' MichelinePrimAp MichelinePrimitive
+ Morley.Michelson.Typed: (//->) :: Label ("c" `AppendSymbol` ctor) -> RemFail Instr (AppendCtorField x inp) out -> CaseClause inp out ('CaseClauseParam ctor x)
+ Morley.Michelson.Typed: --
+ Morley.Michelson.Typed: -- <tt>m</tt>.
+ Morley.Michelson.Typed: -- CInt = CInt</tt>.
+ Morley.Michelson.Typed: -- Descriptions will be checked at compile time to make sure that only
+ Morley.Michelson.Typed: -- For implementation of the check see <a>FieldDescriptionsValid</a> type
+ Morley.Michelson.Typed: -- See <a>FieldDescriptions</a> documentation for an example of usage.
+ Morley.Michelson.Typed: -- computing operation <tt>op</tt> from operands of types <tt>n</tt> and
+ Morley.Michelson.Typed: -- existing constructors and fields are referenced.
+ Morley.Michelson.Typed: -- family.
+ Morley.Michelson.Typed: -- reflected in following instance of type family: <tt>ArithRes Add CNat
+ Morley.Michelson.Typed: -- type.
+ Morley.Michelson.Typed: -- whenever <tt>TypeDocFieldDescriptions</tt> is not empty.
+ Morley.Michelson.Typed: -- | Description of constructors and fields of <tt>a</tt>.
+ Morley.Michelson.Typed: AcLeft :: ArmCoord
+ Morley.Michelson.Typed: AcRight :: ArmCoord
+ Morley.Michelson.Typed: AddOverflow :: MutezArithErrorType
+ Morley.Michelson.Typed: AnnotatedValue :: Notes (ToT v) -> Value (ToT v) -> AnnotatedValue v
+ Morley.Michelson.Typed: BigMapAbsent :: BigMapPresence (t :: T)
+ Morley.Michelson.Typed: BigMapId :: Natural -> BigMapId k v
+ Morley.Michelson.Typed: BigMapPresent :: BigMapPresence (t :: T)
+ Morley.Michelson.Typed: BtHasBigMap :: BadTypeForScope
+ Morley.Michelson.Typed: BtHasContract :: BadTypeForScope
+ Morley.Michelson.Typed: BtHasNestedBigMap :: BadTypeForScope
+ Morley.Michelson.Typed: BtHasTicket :: BadTypeForScope
+ Morley.Michelson.Typed: BtIsOperation :: BadTypeForScope
+ Morley.Michelson.Typed: BtNotComparable :: BadTypeForScope
+ Morley.Michelson.Typed: COMMENT_ITEM :: CommentType -> ExtInstr s
+ Morley.Michelson.Typed: CaseClauseParam :: Symbol -> CtorField -> CaseClauseParam
+ Morley.Michelson.Typed: ComposeCtorNotFound :: ComposeResult a
+ Morley.Michelson.Typed: ComposeFieldTypeMismatch :: T -> T -> ComposeResult a
+ Morley.Michelson.Typed: ComposeOk :: a -> ComposeResult a
+ Morley.Michelson.Typed: ConstructorRep :: Text -> Maybe Text -> [FieldRep a] -> ConstructorRep a
+ Morley.Michelson.Typed: Contract :: ContractCode' instr cp st -> ParamNotes cp -> Notes st -> ViewsSet' instr st -> EntriesOrder -> Contract' instr cp st
+ Morley.Michelson.Typed: ContractAbsent :: ContractPresence (t :: T)
+ Morley.Michelson.Typed: ContractPresent :: ContractPresence (t :: T)
+ Morley.Michelson.Typed: ContractRef :: Address -> SomeEntrypointCall arg -> ContractRef (arg :: Type)
+ Morley.Michelson.Typed: CreateContract :: Address -> Maybe KeyHash -> Mutez -> Value' instr st -> Contract' instr cp st -> GlobalCounter -> CreateContract instr cp st
+ Morley.Michelson.Typed: CtorEffectsApp :: Text -> (forall i o. Semigroup x => x -> x -> Instr i o -> (Instr i o, x)) -> CtorEffectsApp x
+ Morley.Michelson.Typed: DOC_ITEM :: SomeDocItem -> ExtInstr s
+ Morley.Michelson.Typed: DStorageType :: DType -> DStorageType
+ Morley.Michelson.Typed: DfsSettings :: Bool -> CtorEffectsApp x -> DfsSettings x
+ Morley.Michelson.Typed: DuplicatedViewName :: ViewName -> ViewsSetError
+ Morley.Michelson.Typed: EntrypointCall :: EpName -> Proxy param -> EpLiftSequence arg param -> EntrypointCallT (param :: T) (arg :: T)
+ Morley.Michelson.Typed: EpAddress :: Address -> EpName -> EpAddress
+ Morley.Michelson.Typed: FieldConstructor :: Instr (ToTs' st) (ToT field : ToTs' st) -> FieldConstructor (st :: [k]) (field :: Type)
+ Morley.Michelson.Typed: FieldRep :: Maybe Text -> Maybe Text -> a -> FieldRep a
+ Morley.Michelson.Typed: FunctionEnds :: Text -> CommentType
+ Morley.Michelson.Typed: FunctionStarts :: Text -> CommentType
+ Morley.Michelson.Typed: InEpNameBadAnnotation :: FieldAnn -> EpNameFromRefAnnError
+ Morley.Michelson.Typed: JustComment :: Text -> CommentType
+ Morley.Michelson.Typed: L :: Branch
+ Morley.Michelson.Typed: LslOverflow :: ShiftArithErrorType
+ Morley.Michelson.Typed: LsrUnderflow :: ShiftArithErrorType
+ Morley.Michelson.Typed: MulOverflow :: MutezArithErrorType
+ Morley.Michelson.Typed: MutezArithError :: MutezArithErrorType -> n -> m -> ArithError n m
+ Morley.Michelson.Typed: NestedBigMapsAbsent :: NestedBigMapsPresence (t :: T)
+ Morley.Michelson.Typed: NestedBigMapsPresent :: NestedBigMapsPresence (t :: T)
+ Morley.Michelson.Typed: NoFields :: CtorField
+ Morley.Michelson.Typed: OneField :: Type -> CtorField
+ Morley.Michelson.Typed: OpAbsent :: OpPresence (t :: T)
+ Morley.Michelson.Typed: OpPresent :: OpPresence (t :: T)
+ Morley.Michelson.Typed: OpSize :: Word -> OpSize
+ Morley.Michelson.Typed: PRINT :: PrintComment s -> ExtInstr s
+ Morley.Michelson.Typed: ParamEpDuplicatedNames :: NonEmpty EpName -> ParamEpError
+ Morley.Michelson.Typed: ParamEpUncallableArm :: ArmCoords -> ParamEpError
+ Morley.Michelson.Typed: ParseEpAddressBadAddress :: ParseAddressError -> ParseEpAddressError
+ Morley.Michelson.Typed: ParseEpAddressBadEntryopint :: ByteString -> UnicodeException -> ParseEpAddressError
+ Morley.Michelson.Typed: ParseEpAddressBadRefAnn :: Text -> ParseEpAddressError
+ Morley.Michelson.Typed: ParseEpAddressInvalidLength :: Int -> ParseEpAddressError
+ Morley.Michelson.Typed: ParseEpAddressRawBadAddress :: ParseAddressRawError -> ParseEpAddressError
+ Morley.Michelson.Typed: ParseEpAddressRefAnnError :: EpNameFromRefAnnError -> ParseEpAddressError
+ Morley.Michelson.Typed: PrintComment :: [Either Text (StackRef st)] -> PrintComment (st :: [T])
+ Morley.Michelson.Typed: R :: Branch
+ Morley.Michelson.Typed: S :: Branch
+ Morley.Michelson.Typed: STACKTYPE :: StackTypePattern -> ExtInstr s
+ Morley.Michelson.Typed: SetDelegate :: Maybe KeyHash -> GlobalCounter -> SetDelegate
+ Morley.Michelson.Typed: ShiftArithError :: ShiftArithErrorType -> n -> m -> ArithError n m
+ Morley.Michelson.Typed: SomeEpc :: EntrypointCallT param arg -> SomeEntrypointCallT (arg :: T)
+ Morley.Michelson.Typed: StackTypeComment :: Maybe [T] -> CommentType
+ Morley.Michelson.Typed: StatementEnds :: Text -> CommentType
+ Morley.Michelson.Typed: StatementStarts :: Text -> CommentType
+ Morley.Michelson.Typed: Sub :: (a => Dict b) -> (:-) a b
+ Morley.Michelson.Typed: SubUnderflow :: MutezArithErrorType
+ Morley.Michelson.Typed: TAddress :: T
+ Morley.Michelson.Typed: TBigMap :: T -> T -> T
+ Morley.Michelson.Typed: TBls12381Fr :: T
+ Morley.Michelson.Typed: TBls12381G1 :: T
+ Morley.Michelson.Typed: TBls12381G2 :: T
+ Morley.Michelson.Typed: TBool :: T
+ Morley.Michelson.Typed: TBytes :: T
+ Morley.Michelson.Typed: TChainId :: T
+ Morley.Michelson.Typed: TChest :: T
+ Morley.Michelson.Typed: TChestKey :: T
+ Morley.Michelson.Typed: TContract :: T -> T
+ Morley.Michelson.Typed: TEST_ASSERT :: TestAssert s -> ExtInstr s
+ Morley.Michelson.Typed: TInt :: T
+ Morley.Michelson.Typed: TKey :: T
+ Morley.Michelson.Typed: TKeyHash :: T
+ Morley.Michelson.Typed: TLambda :: T -> T -> T
+ Morley.Michelson.Typed: TList :: T -> T
+ Morley.Michelson.Typed: TMap :: T -> T -> T
+ Morley.Michelson.Typed: TMutez :: T
+ Morley.Michelson.Typed: TNat :: T
+ Morley.Michelson.Typed: TNever :: T
+ Morley.Michelson.Typed: TOperation :: T
+ Morley.Michelson.Typed: TOption :: T -> T
+ Morley.Michelson.Typed: TOr :: T -> T -> T
+ Morley.Michelson.Typed: TPair :: T -> T -> T
+ Morley.Michelson.Typed: TSet :: T -> T
+ Morley.Michelson.Typed: TSignature :: T
+ Morley.Michelson.Typed: TString :: T
+ Morley.Michelson.Typed: TTicket :: T -> T
+ Morley.Michelson.Typed: TTimestamp :: T
+ Morley.Michelson.Typed: TUnit :: T
+ Morley.Michelson.Typed: Ticket :: Address -> arg -> Natural -> Ticket (arg :: Type)
+ Morley.Michelson.Typed: TicketAbsent :: TicketPresence (t :: T)
+ Morley.Michelson.Typed: TicketPresent :: TicketPresence (t :: T)
+ Morley.Michelson.Typed: TransferTokens :: Value' instr p -> Mutez -> Value' instr ('TContract p) -> GlobalCounter -> TransferTokens instr p
+ Morley.Michelson.Typed: UnsafeEpName :: Text -> EpName
+ Morley.Michelson.Typed: UnsafeParamNotes :: Notes t -> RootAnn -> ParamNotes (t :: T)
+ Morley.Michelson.Typed: UnsafeViewName :: Text -> ViewName
+ Morley.Michelson.Typed: UnsafeViewsSet :: (Seq $ SomeView' instr st) -> ViewsSet' instr st
+ Morley.Michelson.Typed: View :: ViewName -> Notes arg -> Notes ret -> ViewCode' instr arg st ret -> View' instr arg st ret
+ Morley.Michelson.Typed: WithinParens :: Bool -> WithinParens
+ Morley.Michelson.Typed: [ABS] :: UnaryArithOp Abs n => Instr (n : s) (UnaryArithRes Abs n : s)
+ Morley.Michelson.Typed: [ADDRESS] :: Instr ('TContract a : s) ('TAddress : s)
+ Morley.Michelson.Typed: [ADD] :: ArithOp Add n m => Instr (n : (m : s)) (ArithRes Add n m : s)
+ Morley.Michelson.Typed: [AMOUNT] :: Instr s ('TMutez : s)
+ Morley.Michelson.Typed: [AND] :: ArithOp And n m => Instr (n : (m : s)) (ArithRes And n m : s)
+ Morley.Michelson.Typed: [APPLY] :: forall a b c s. (ConstantScope a, SingI b) => Instr (a : ('TLambda ('TPair a b) c : s)) ('TLambda b c : s)
+ Morley.Michelson.Typed: [AnnCAR] :: VarAnn -> FieldAnn -> Instr ('TPair a b : s) (a : s)
+ Morley.Michelson.Typed: [AnnCDR] :: VarAnn -> FieldAnn -> Instr ('TPair a b : s) (b : s)
+ Morley.Michelson.Typed: [AnnConvergeError] :: forall (tag :: Type). (Buildable (Annotation tag), Show (Annotation tag), Typeable tag) => Annotation tag -> Annotation tag -> AnnConvergeError
+ Morley.Michelson.Typed: [AnnLEFT] :: SingI b => TypeAnn -> FieldAnn -> FieldAnn -> Instr (a : s) ('TOr a b : s)
+ Morley.Michelson.Typed: [AnnPAIR] :: TypeAnn -> FieldAnn -> FieldAnn -> Instr (a : (b : s)) ('TPair a b : s)
+ Morley.Michelson.Typed: [AnnRIGHT] :: SingI a => TypeAnn -> FieldAnn -> FieldAnn -> Instr (b : s) ('TOr a b : s)
+ Morley.Michelson.Typed: [AnnUNPAIR] :: VarAnn -> VarAnn -> FieldAnn -> FieldAnn -> Instr ('TPair a b : s) (a : (b : s))
+ Morley.Michelson.Typed: [BALANCE] :: Instr s ('TMutez : s)
+ Morley.Michelson.Typed: [BLAKE2B] :: Instr ('TBytes : s) ('TBytes : s)
+ Morley.Michelson.Typed: [CAST] :: forall a s. SingI a => Instr (a : s) (a : s)
+ Morley.Michelson.Typed: [CHAIN_ID] :: Instr s ('TChainId : s)
+ Morley.Michelson.Typed: [CHECK_SIGNATURE] :: Instr ('TKey : ('TSignature : ('TBytes : s))) ('TBool : s)
+ Morley.Michelson.Typed: [COMPARE] :: (Comparable n, SingI n) => Instr (n : (n : s)) ('TInt : s)
+ Morley.Michelson.Typed: [CONCAT'] :: ConcatOp c => Instr ('TList c : s) (c : s)
+ Morley.Michelson.Typed: [CONCAT] :: ConcatOp c => Instr (c : (c : s)) (c : s)
+ Morley.Michelson.Typed: [CONS] :: Instr (a : ('TList a : s)) ('TList a : s)
+ Morley.Michelson.Typed: [CONTRACT] :: ParameterScope p => Notes p -> EpName -> Instr ('TAddress : s) ('TOption ('TContract p) : s)
+ Morley.Michelson.Typed: [CREATE_CONTRACT] :: (ParameterScope p, StorageScope g) => Contract' Instr p g -> Instr ('TOption 'TKeyHash : ('TMutez : (g : s))) ('TOperation : ('TAddress : s))
+ Morley.Michelson.Typed: [CanBeCompared] :: Comparable t => Comparability t
+ Morley.Michelson.Typed: [CannotBeCompared] :: IsComparable t ~ 'False => Comparability t
+ Morley.Michelson.Typed: [CaseClause] :: RemFail Instr (AppendCtorField x inp) out -> CaseClause inp out ('CaseClauseParam ctor x)
+ Morley.Michelson.Typed: [ConstantStorage] :: ConstantScope st => Value st -> PushableStorageSplit s st
+ Morley.Michelson.Typed: [DIG] :: forall (n :: Peano) inp out a. ConstraintDIG n inp out a => PeanoNatural n -> Instr inp out
+ Morley.Michelson.Typed: [DIPN] :: forall (n :: Peano) inp out s s'. ConstraintDIPN n inp out s s' => PeanoNatural n -> Instr s s' -> Instr inp out
+ Morley.Michelson.Typed: [DIP] :: Instr a c -> Instr (b : a) (b : c)
+ Morley.Michelson.Typed: [DROPN] :: forall (n :: Peano) s. RequireLongerOrSameLength s n => PeanoNatural n -> Instr s (Drop n s)
+ Morley.Michelson.Typed: [DROP] :: Instr (a : s) s
+ Morley.Michelson.Typed: [DType] :: TypeHasDoc a => Proxy a -> DType
+ Morley.Michelson.Typed: [DUG] :: forall (n :: Peano) inp out a. ConstraintDUG n inp out a => PeanoNatural n -> Instr inp out
+ Morley.Michelson.Typed: [DUPN] :: forall (n :: Peano) inp out a. (ConstraintDUPN n inp out a, DupableScope a) => PeanoNatural n -> Instr inp out
+ Morley.Michelson.Typed: [DUP] :: DupableScope a => Instr (a : s) (a : (a : s))
+ Morley.Michelson.Typed: [Dict] :: forall a. a => Dict a
+ Morley.Michelson.Typed: [DocGroup] :: DocGrouping -> Instr inp out -> Instr inp out
+ Morley.Michelson.Typed: [EDIV] :: ArithOp EDiv n m => Instr (n : (m : s)) (ArithRes EDiv n m : s)
+ Morley.Michelson.Typed: [EMPTY_BIG_MAP] :: (SingI a, SingI b, Comparable a, HasNoBigMap b) => Instr s ('TBigMap a b : s)
+ Morley.Michelson.Typed: [EMPTY_MAP] :: (SingI a, SingI b, Comparable a) => Instr s ('TMap a b : s)
+ Morley.Michelson.Typed: [EMPTY_SET] :: (SingI e, Comparable e) => Instr s ('TSet e : s)
+ Morley.Michelson.Typed: [EQ] :: UnaryArithOp Eq' n => Instr (n : s) (UnaryArithRes Eq' n : s)
+ Morley.Michelson.Typed: [EXEC] :: Instr (t1 : ('TLambda t1 t2 : s)) (t2 : s)
+ Morley.Michelson.Typed: [EplArgHere] :: EpLiftSequence arg arg
+ Morley.Michelson.Typed: [EplWrapLeft] :: (SingI subparam, SingI r) => EpLiftSequence arg subparam -> EpLiftSequence arg ('TOr subparam r)
+ Morley.Michelson.Typed: [EplWrapRight] :: (SingI l, SingI subparam) => EpLiftSequence arg subparam -> EpLiftSequence arg ('TOr l subparam)
+ Morley.Michelson.Typed: [Ext] :: ExtInstr s -> Instr s s
+ Morley.Michelson.Typed: [FAILWITH] :: (SingI a, ConstantScope a) => Instr (a : s) t
+ Morley.Michelson.Typed: [Fn] :: Text -> StackFn -> Instr inp out -> Instr inp out
+ Morley.Michelson.Typed: [FrameInstr] :: forall a b s. (KnownList a, KnownList b) => Proxy s -> Instr a b -> Instr (a ++ s) (b ++ s)
+ Morley.Michelson.Typed: [GETN] :: forall (ix :: Peano) (pair :: T) (s :: [T]). ConstraintGetN ix pair => PeanoNatural ix -> Instr (pair : s) (GetN ix pair : s)
+ Morley.Michelson.Typed: [GET] :: (GetOp c, SingI (GetOpVal c)) => Instr (GetOpKey c : (c : s)) ('TOption (GetOpVal c) : s)
+ Morley.Michelson.Typed: [GET_AND_UPDATE] :: (GetOp c, UpdOp c, SingI (GetOpVal c), UpdOpKey c ~ GetOpKey c) => Instr (UpdOpKey c : (UpdOpParams c : (c : s))) ('TOption (GetOpVal c) : (c : s))
+ Morley.Michelson.Typed: [GE] :: UnaryArithOp Ge n => Instr (n : s) (UnaryArithRes Ge n : s)
+ Morley.Michelson.Typed: [GT] :: UnaryArithOp Gt n => Instr (n : s) (UnaryArithRes Gt n : s)
+ Morley.Michelson.Typed: [HASH_KEY] :: Instr ('TKey : s) ('TKeyHash : s)
+ Morley.Michelson.Typed: [IF] :: Instr s s' -> Instr s s' -> Instr ('TBool : s) s'
+ Morley.Michelson.Typed: [IF_CONS] :: Instr (a : ('TList a : s)) s' -> Instr s s' -> Instr ('TList a : s) s'
+ Morley.Michelson.Typed: [IF_LEFT] :: Instr (a : s) s' -> Instr (b : s) s' -> Instr ('TOr a b : s) s'
+ Morley.Michelson.Typed: [IF_NONE] :: Instr s s' -> Instr (a : s) s' -> Instr ('TOption a : s) s'
+ Morley.Michelson.Typed: [IMPLICIT_ACCOUNT] :: Instr ('TKeyHash : s) ('TContract 'TUnit : s)
+ Morley.Michelson.Typed: [INT] :: ToIntArithOp n => Instr (n : s) ('TInt : s)
+ Morley.Michelson.Typed: [ISNAT] :: Instr ('TInt : s) ('TOption 'TNat : s)
+ Morley.Michelson.Typed: [ITER] :: IterOp c => Instr (IterOpEl c : s) s -> Instr (c : s) s
+ Morley.Michelson.Typed: [InstrWithNotes] :: forall a (topElems :: [T]) (s :: [T]). (RMap topElems, RecordToList topElems, ReifyConstraint Show Notes topElems, ReifyConstraint NFData Notes topElems, Each '[SingI] topElems) => Proxy s -> Rec Notes topElems -> Instr a (topElems ++ s) -> Instr a (topElems ++ s)
+ Morley.Michelson.Typed: [InstrWithVarAnns] :: VarAnns -> Instr a b -> Instr a b
+ Morley.Michelson.Typed: [InstrWithVarNotes] :: NonEmpty VarAnn -> Instr a b -> Instr a b
+ Morley.Michelson.Typed: [JOIN_TICKETS] :: Instr ('TPair ('TTicket a) ('TTicket a) : s) ('TOption ('TTicket a) : s)
+ Morley.Michelson.Typed: [KECCAK] :: Instr ('TBytes : s) ('TBytes : s)
+ Morley.Michelson.Typed: [LAMBDA] :: forall i o s. (SingI i, SingI o) => Value' Instr ('TLambda i o) -> Instr s ('TLambda i o : s)
+ Morley.Michelson.Typed: [LEVEL] :: Instr s ('TNat : s)
+ Morley.Michelson.Typed: [LE] :: UnaryArithOp Le n => Instr (n : s) (UnaryArithRes Le n : s)
+ Morley.Michelson.Typed: [LOOP] :: Instr s ('TBool : s) -> Instr ('TBool : s) s
+ Morley.Michelson.Typed: [LOOP_LEFT] :: Instr (a : s) ('TOr a b : s) -> Instr ('TOr a b : s) (b : s)
+ Morley.Michelson.Typed: [LSL] :: ArithOp Lsl n m => Instr (n : (m : s)) (ArithRes Lsl n m : s)
+ Morley.Michelson.Typed: [LSR] :: ArithOp Lsr n m => Instr (n : (m : s)) (ArithRes Lsr n m : s)
+ Morley.Michelson.Typed: [LT] :: UnaryArithOp Lt n => Instr (n : s) (UnaryArithRes Lt n : s)
+ Morley.Michelson.Typed: [MAP] :: (MapOp c, SingI b) => Instr (MapOpInp c : s) (b : s) -> Instr (c : s) (MapOpRes c b : s)
+ Morley.Michelson.Typed: [MEM] :: MemOp c => Instr (MemOpKey c : (c : s)) ('TBool : s)
+ Morley.Michelson.Typed: [MUL] :: ArithOp Mul n m => Instr (n : (m : s)) (ArithRes Mul n m : s)
+ Morley.Michelson.Typed: [Meta] :: SomeMeta -> Instr a b -> Instr a b
+ Morley.Michelson.Typed: [MkEntrypointCallRes] :: ParameterScope arg => Notes arg -> EntrypointCallT param arg -> MkEntrypointCallRes param
+ Morley.Michelson.Typed: [NEG] :: UnaryArithOp Neg n => Instr (n : s) (UnaryArithRes Neg n : s)
+ Morley.Michelson.Typed: [NEQ] :: UnaryArithOp Neq n => Instr (n : s) (UnaryArithRes Neq n : s)
+ Morley.Michelson.Typed: [NEVER] :: Instr ('TNever : s) t
+ Morley.Michelson.Typed: [NIL] :: SingI p => Instr s ('TList p : s)
+ Morley.Michelson.Typed: [NONE] :: forall a s. SingI a => Instr s ('TOption a : s)
+ Morley.Michelson.Typed: [NOT] :: UnaryArithOp Not n => Instr (n : s) (UnaryArithRes Not n : s)
+ Morley.Michelson.Typed: [NOW] :: Instr s ('TTimestamp : s)
+ Morley.Michelson.Typed: [NTAddress] :: TypeAnn -> Notes 'TAddress
+ Morley.Michelson.Typed: [NTBigMap] :: TypeAnn -> Notes k -> Notes v -> Notes ('TBigMap k v)
+ Morley.Michelson.Typed: [NTBls12381Fr] :: TypeAnn -> Notes 'TBls12381Fr
+ Morley.Michelson.Typed: [NTBls12381G1] :: TypeAnn -> Notes 'TBls12381G1
+ Morley.Michelson.Typed: [NTBls12381G2] :: TypeAnn -> Notes 'TBls12381G2
+ Morley.Michelson.Typed: [NTBool] :: TypeAnn -> Notes 'TBool
+ Morley.Michelson.Typed: [NTBytes] :: TypeAnn -> Notes 'TBytes
+ Morley.Michelson.Typed: [NTChainId] :: TypeAnn -> Notes 'TChainId
+ Morley.Michelson.Typed: [NTChestKey] :: TypeAnn -> Notes 'TChestKey
+ Morley.Michelson.Typed: [NTChest] :: TypeAnn -> Notes 'TChest
+ Morley.Michelson.Typed: [NTContract] :: TypeAnn -> Notes t -> Notes ('TContract t)
+ Morley.Michelson.Typed: [NTInt] :: TypeAnn -> Notes 'TInt
+ Morley.Michelson.Typed: [NTKeyHash] :: TypeAnn -> Notes 'TKeyHash
+ Morley.Michelson.Typed: [NTKey] :: TypeAnn -> Notes 'TKey
+ Morley.Michelson.Typed: [NTLambda] :: TypeAnn -> Notes p -> Notes q -> Notes ('TLambda p q)
+ Morley.Michelson.Typed: [NTList] :: TypeAnn -> Notes t -> Notes ('TList t)
+ Morley.Michelson.Typed: [NTMap] :: TypeAnn -> Notes k -> Notes v -> Notes ('TMap k v)
+ Morley.Michelson.Typed: [NTMutez] :: TypeAnn -> Notes 'TMutez
+ Morley.Michelson.Typed: [NTNat] :: TypeAnn -> Notes 'TNat
+ Morley.Michelson.Typed: [NTNever] :: TypeAnn -> Notes 'TNever
+ Morley.Michelson.Typed: [NTOperation] :: TypeAnn -> Notes 'TOperation
+ Morley.Michelson.Typed: [NTOption] :: TypeAnn -> Notes t -> Notes ('TOption t)
+ Morley.Michelson.Typed: [NTOr] :: TypeAnn -> FieldAnn -> FieldAnn -> Notes p -> Notes q -> Notes ('TOr p q)
+ Morley.Michelson.Typed: [NTPair] :: TypeAnn -> FieldAnn -> FieldAnn -> VarAnn -> VarAnn -> Notes p -> Notes q -> Notes ('TPair p q)
+ Morley.Michelson.Typed: [NTSet] :: TypeAnn -> Notes t -> Notes ('TSet t)
+ Morley.Michelson.Typed: [NTSignature] :: TypeAnn -> Notes 'TSignature
+ Morley.Michelson.Typed: [NTString] :: TypeAnn -> Notes 'TString
+ Morley.Michelson.Typed: [NTTicket] :: TypeAnn -> Notes t -> Notes ('TTicket t)
+ Morley.Michelson.Typed: [NTTimestamp] :: TypeAnn -> Notes 'TTimestamp
+ Morley.Michelson.Typed: [NTUnit] :: TypeAnn -> Notes 'TUnit
+ Morley.Michelson.Typed: [Nested] :: Instr inp out -> Instr inp out
+ Morley.Michelson.Typed: [Nop] :: Instr s s
+ Morley.Michelson.Typed: [OPEN_CHEST] :: Instr ('TChestKey : ('TChest : ('TNat : s))) ('TOr 'TBytes 'TBool : s)
+ Morley.Michelson.Typed: [OR] :: ArithOp Or n m => Instr (n : (m : s)) (ArithRes Or n m : s)
+ Morley.Michelson.Typed: [OpCreateContract] :: (forall i o. Show (instr i o), forall i o. NFData (instr i o), Typeable instr, ParameterScope cp, StorageScope st) => CreateContract instr cp st -> Operation' instr
+ Morley.Michelson.Typed: [OpSetDelegate] :: SetDelegate -> Operation' instr
+ Morley.Michelson.Typed: [OpTransferTokens] :: ParameterScope p => TransferTokens instr p -> Operation' instr
+ Morley.Michelson.Typed: [PACK] :: PackedValScope a => Instr (a : s) ('TBytes : s)
+ Morley.Michelson.Typed: [PAIRING_CHECK] :: Instr ('TList ('TPair 'TBls12381G1 'TBls12381G2) : s) ('TBool : s)
+ Morley.Michelson.Typed: [PAIRN] :: forall n inp. ConstraintPairN n inp => PeanoNatural n -> Instr inp (PairN n inp)
+ Morley.Michelson.Typed: [PUSH] :: forall t s. ConstantScope t => Value' Instr t -> Instr s (t : s)
+ Morley.Michelson.Typed: [PartlyPushableStorage] :: (StorageScope heavy, StorageScope st) => Value heavy -> Instr (heavy : s) (st : s) -> PushableStorageSplit s st
+ Morley.Michelson.Typed: [PushableValueStorage] :: StorageScope st => Instr s (st : s) -> PushableStorageSplit s st
+ Morley.Michelson.Typed: [READ_TICKET] :: Instr ('TTicket a : s) (RightComb ['TAddress, a, 'TNat] : ('TTicket a : s))
+ Morley.Michelson.Typed: [RENAME] :: Instr (a : s) (a : s)
+ Morley.Michelson.Typed: [RfAlwaysFails] :: (forall o'. instr i o') -> RemFail instr i o
+ Morley.Michelson.Typed: [RfNormal] :: instr i o -> RemFail instr i o
+ Morley.Michelson.Typed: [SELF] :: forall (arg :: T) s. ParameterScope arg => SomeEntrypointCallT arg -> Instr s ('TContract arg : s)
+ Morley.Michelson.Typed: [SELF_ADDRESS] :: Instr s ('TAddress : s)
+ Morley.Michelson.Typed: [SENDER] :: Instr s ('TAddress : s)
+ Morley.Michelson.Typed: [SET_DELEGATE] :: Instr ('TOption 'TKeyHash : s) ('TOperation : s)
+ Morley.Michelson.Typed: [SHA256] :: Instr ('TBytes : s) ('TBytes : s)
+ Morley.Michelson.Typed: [SHA3] :: Instr ('TBytes : s) ('TBytes : s)
+ Morley.Michelson.Typed: [SHA512] :: Instr ('TBytes : s) ('TBytes : s)
+ Morley.Michelson.Typed: [SIZE] :: SizeOp c => Instr (c : s) ('TNat : s)
+ Morley.Michelson.Typed: [SLICE] :: (SliceOp c, SingI c) => Instr ('TNat : ('TNat : (c : s))) ('TOption c : s)
+ Morley.Michelson.Typed: [SOME] :: Instr (a : s) ('TOption a : s)
+ Morley.Michelson.Typed: [SOURCE] :: Instr s ('TAddress : s)
+ Morley.Michelson.Typed: [SPLIT_TICKET] :: Instr ('TTicket a : ('TPair 'TNat 'TNat : s)) ('TOption ('TPair ('TTicket a) ('TTicket a)) : s)
+ Morley.Michelson.Typed: [STAddress] :: SingT ('TAddress :: T)
+ Morley.Michelson.Typed: [STBigMap] :: forall (n_a1CB6 :: T) (n_a1CB7 :: T). () => Sing n_a1CB6 -> Sing n_a1CB7 -> SingT ('TBigMap n_a1CB6 n_a1CB7 :: T)
+ Morley.Michelson.Typed: [STBls12381Fr] :: SingT ('TBls12381Fr :: T)
+ Morley.Michelson.Typed: [STBls12381G1] :: SingT ('TBls12381G1 :: T)
+ Morley.Michelson.Typed: [STBls12381G2] :: SingT ('TBls12381G2 :: T)
+ Morley.Michelson.Typed: [STBool] :: SingT ('TBool :: T)
+ Morley.Michelson.Typed: [STBytes] :: SingT ('TBytes :: T)
+ Morley.Michelson.Typed: [STChainId] :: SingT ('TChainId :: T)
+ Morley.Michelson.Typed: [STChestKey] :: SingT ('TChestKey :: T)
+ Morley.Michelson.Typed: [STChest] :: SingT ('TChest :: T)
+ Morley.Michelson.Typed: [STContract] :: forall (n_a1CAM :: T). () => Sing n_a1CAM -> SingT ('TContract n_a1CAM :: T)
+ Morley.Michelson.Typed: [STInt] :: SingT ('TInt :: T)
+ Morley.Michelson.Typed: [STKeyHash] :: SingT ('TKeyHash :: T)
+ Morley.Michelson.Typed: [STKey] :: SingT ('TKey :: T)
+ Morley.Michelson.Typed: [STLambda] :: forall (n_a1CAY :: T) (n_a1CAZ :: T). () => Sing n_a1CAY -> Sing n_a1CAZ -> SingT ('TLambda n_a1CAY n_a1CAZ :: T)
+ Morley.Michelson.Typed: [STList] :: forall (n_a1CAI :: T). () => Sing n_a1CAI -> SingT ('TList n_a1CAI :: T)
+ Morley.Michelson.Typed: [STMap] :: forall (n_a1CB2 :: T) (n_a1CB3 :: T). () => Sing n_a1CB2 -> Sing n_a1CB3 -> SingT ('TMap n_a1CB2 n_a1CB3 :: T)
+ Morley.Michelson.Typed: [STMutez] :: SingT ('TMutez :: T)
+ Morley.Michelson.Typed: [STNat] :: SingT ('TNat :: T)
+ Morley.Michelson.Typed: [STNever] :: SingT ('TNever :: T)
+ Morley.Michelson.Typed: [STOperation] :: SingT ('TOperation :: T)
+ Morley.Michelson.Typed: [STOption] :: forall (n_a1CAG :: T). () => Sing n_a1CAG -> SingT ('TOption n_a1CAG :: T)
+ Morley.Michelson.Typed: [STOr] :: forall (n_a1CAU :: T) (n_a1CAV :: T). () => Sing n_a1CAU -> Sing n_a1CAV -> SingT ('TOr n_a1CAU n_a1CAV :: T)
+ Morley.Michelson.Typed: [STPair] :: forall (n_a1CAQ :: T) (n_a1CAR :: T). () => Sing n_a1CAQ -> Sing n_a1CAR -> SingT ('TPair n_a1CAQ n_a1CAR :: T)
+ Morley.Michelson.Typed: [STSet] :: forall (n_a1CAK :: T). () => Sing n_a1CAK -> SingT ('TSet n_a1CAK :: T)
+ Morley.Michelson.Typed: [STSignature] :: SingT ('TSignature :: T)
+ Morley.Michelson.Typed: [STString] :: SingT ('TString :: T)
+ Morley.Michelson.Typed: [STTicket] :: forall (n_a1CAO :: T). () => Sing n_a1CAO -> SingT ('TTicket n_a1CAO :: T)
+ Morley.Michelson.Typed: [STTimestamp] :: SingT ('TTimestamp :: T)
+ Morley.Michelson.Typed: [STUnit] :: SingT ('TUnit :: T)
+ Morley.Michelson.Typed: [SUB] :: ArithOp Sub n m => Instr (n : (m : s)) (ArithRes Sub n m : s)
+ Morley.Michelson.Typed: [SWAP] :: Instr (a : (b : s)) (b : (a : s))
+ Morley.Michelson.Typed: [Seq] :: Instr a b -> Instr b c -> Instr a c
+ Morley.Michelson.Typed: [SomeAnnotatedValue] :: forall t. SingI t => Notes t -> Value t -> SomeAnnotatedValue
+ Morley.Michelson.Typed: [SomeConstant] :: (ConstantScope t, SingI t) => Value t -> SomeConstant
+ Morley.Michelson.Typed: [SomeConstrainedValue] :: forall (t :: T) (c :: T -> Constraint). c t => Value t -> SomeConstrainedValue c
+ Morley.Michelson.Typed: [SomeContractAndStorage] :: forall cp st. (StorageScope st, ParameterScope cp) => Contract cp st -> Value st -> SomeContractAndStorage
+ Morley.Michelson.Typed: [SomeContract] :: Contract cp st -> SomeContract
+ Morley.Michelson.Typed: [SomeIsoValue] :: KnownIsoT a => a -> SomeIsoValue
+ Morley.Michelson.Typed: [SomeMeta] :: forall meta. With [NFData, Show, Typeable] meta => meta -> SomeMeta
+ Morley.Michelson.Typed: [SomeStorage] :: forall st. StorageScope st => Value st -> SomeStorage
+ Morley.Michelson.Typed: [SomeTypeWithDoc] :: TypeHasDoc td => Proxy td -> SomeTypeWithDoc
+ Morley.Michelson.Typed: [SomeValue] :: SingI t => Value t -> SomeValue
+ Morley.Michelson.Typed: [SomeView] :: View' instr arg st ret -> SomeView' instr st
+ Morley.Michelson.Typed: [SomeViewsSet] :: SingI st => ViewsSet' instr st -> SomeViewsSet' instr
+ Morley.Michelson.Typed: [StackRef] :: RequireLongerThan st idx => PeanoNatural idx -> StackRef st
+ Morley.Michelson.Typed: [TICKET] :: Comparable a => Instr (a : ('TNat : s)) ('TTicket a : s)
+ Morley.Michelson.Typed: [TOTAL_VOTING_POWER] :: Instr s ('TNat : s)
+ Morley.Michelson.Typed: [TRANSFER_TOKENS] :: ParameterScope p => Instr (p : ('TMutez : ('TContract p : s))) ('TOperation : s)
+ Morley.Michelson.Typed: [TestAssert] :: Text -> PrintComment inp -> Instr inp ('TBool : out) -> TestAssert inp
+ Morley.Michelson.Typed: [UNIT] :: Instr s ('TUnit : s)
+ Morley.Michelson.Typed: [UNPACK] :: (UnpackedValScope a, SingI a) => Instr ('TBytes : s) ('TOption a : s)
+ Morley.Michelson.Typed: [UNPAIRN] :: forall (n :: Peano) (pair :: T) (s :: [T]). ConstraintUnpairN n pair => PeanoNatural n -> Instr (pair : s) (UnpairN n pair ++ s)
+ Morley.Michelson.Typed: [UPDATEN] :: forall (ix :: Peano) (val :: T) (pair :: T) (s :: [T]). ConstraintUpdateN ix pair => PeanoNatural ix -> Instr (val : (pair : s)) (UpdateN ix val pair : s)
+ Morley.Michelson.Typed: [UPDATE] :: UpdOp c => Instr (UpdOpKey c : (UpdOpParams c : (c : s))) (c : s)
+ Morley.Michelson.Typed: [VAddress] :: EpAddress -> Value' instr 'TAddress
+ Morley.Michelson.Typed: [VBigMap] :: forall k v instr. (SingI k, SingI v, Comparable k, HasNoBigMap v) => Maybe Natural -> Map (Value' instr k) (Value' instr v) -> Value' instr ('TBigMap k v)
+ Morley.Michelson.Typed: [VBls12381Fr] :: Bls12381Fr -> Value' instr 'TBls12381Fr
+ Morley.Michelson.Typed: [VBls12381G1] :: Bls12381G1 -> Value' instr 'TBls12381G1
+ Morley.Michelson.Typed: [VBls12381G2] :: Bls12381G2 -> Value' instr 'TBls12381G2
+ Morley.Michelson.Typed: [VBool] :: Bool -> Value' instr 'TBool
+ Morley.Michelson.Typed: [VBytes] :: ByteString -> Value' instr 'TBytes
+ Morley.Michelson.Typed: [VChainId] :: ChainId -> Value' instr 'TChainId
+ Morley.Michelson.Typed: [VChestKey] :: ChestKey -> Value' instr 'TChestKey
+ Morley.Michelson.Typed: [VChest] :: Chest -> Value' instr 'TChest
+ Morley.Michelson.Typed: [VContract] :: forall arg instr. (SingI arg, HasNoOp arg) => Address -> SomeEntrypointCallT arg -> Value' instr ('TContract arg)
+ Morley.Michelson.Typed: [VIEW] :: (SingI arg, ViewableScope ret) => ViewName -> Notes ret -> Instr (arg : ('TAddress : s)) ('TOption ret : s)
+ Morley.Michelson.Typed: [VInt] :: Integer -> Value' instr 'TInt
+ Morley.Michelson.Typed: [VKeyHash] :: KeyHash -> Value' instr 'TKeyHash
+ Morley.Michelson.Typed: [VKey] :: PublicKey -> Value' instr 'TKey
+ Morley.Michelson.Typed: [VLam] :: forall inp out instr. (SingI inp, SingI out, forall i o. Show (instr i o), forall i o. Eq (instr i o), forall i o. NFData (instr i o)) => RemFail instr (inp : '[]) (out : '[]) -> Value' instr ('TLambda inp out)
+ Morley.Michelson.Typed: [VList] :: forall t instr. SingI t => [Value' instr t] -> Value' instr ('TList t)
+ Morley.Michelson.Typed: [VMap] :: forall k v instr. (SingI k, SingI v, Comparable k) => Map (Value' instr k) (Value' instr v) -> Value' instr ('TMap k v)
+ Morley.Michelson.Typed: [VMutez] :: Mutez -> Value' instr 'TMutez
+ Morley.Michelson.Typed: [VNat] :: Natural -> Value' instr 'TNat
+ Morley.Michelson.Typed: [VOTING_POWER] :: Instr ('TKeyHash : s) ('TNat : s)
+ Morley.Michelson.Typed: [VOp] :: Operation' instr -> Value' instr 'TOperation
+ Morley.Michelson.Typed: [VOption] :: forall t instr. SingI t => Maybe (Value' instr t) -> Value' instr ('TOption t)
+ Morley.Michelson.Typed: [VOr] :: forall l r instr. (SingI l, SingI r) => Either (Value' instr l) (Value' instr r) -> Value' instr ('TOr l r)
+ Morley.Michelson.Typed: [VPair] :: forall l r instr. (Value' instr l, Value' instr r) -> Value' instr ('TPair l r)
+ Morley.Michelson.Typed: [VSet] :: forall t instr. (SingI t, Comparable t) => Set (Value' instr t) -> Value' instr ('TSet t)
+ Morley.Michelson.Typed: [VSignature] :: Signature -> Value' instr 'TSignature
+ Morley.Michelson.Typed: [VString] :: MText -> Value' instr 'TString
+ Morley.Michelson.Typed: [VTicket] :: forall arg instr. Comparable arg => Address -> Value' instr arg -> Natural -> Value' instr ('TTicket arg)
+ Morley.Michelson.Typed: [VTimestamp] :: Timestamp -> Value' instr 'TTimestamp
+ Morley.Michelson.Typed: [VUnit] :: Value' instr 'TUnit
+ Morley.Michelson.Typed: [WithLoc] :: InstrCallStack -> Instr a b -> Instr a b
+ Morley.Michelson.Typed: [XOR] :: ArithOp Xor n m => Instr (n : (m : s)) (ArithRes Xor n m : s)
+ Morley.Michelson.Typed: [avNotes] :: AnnotatedValue v -> Notes (ToT v)
+ Morley.Michelson.Typed: [avValue] :: AnnotatedValue v -> Value (ToT v)
+ Morley.Michelson.Typed: [cCode] :: Contract' instr cp st -> ContractCode' instr cp st
+ Morley.Michelson.Typed: [cEntriesOrder] :: Contract' instr cp st -> EntriesOrder
+ Morley.Michelson.Typed: [cParamNotes] :: Contract' instr cp st -> ParamNotes cp
+ Morley.Michelson.Typed: [cStoreNotes] :: Contract' instr cp st -> Notes st
+ Morley.Michelson.Typed: [cViews] :: Contract' instr cp st -> ViewsSet' instr st
+ Morley.Michelson.Typed: [ccBalance] :: CreateContract instr cp st -> Mutez
+ Morley.Michelson.Typed: [ccContract] :: CreateContract instr cp st -> Contract' instr cp st
+ Morley.Michelson.Typed: [ccCounter] :: CreateContract instr cp st -> GlobalCounter
+ Morley.Michelson.Typed: [ccDelegate] :: CreateContract instr cp st -> Maybe KeyHash
+ Morley.Michelson.Typed: [ccOriginator] :: CreateContract instr cp st -> Address
+ Morley.Michelson.Typed: [ccStorageVal] :: CreateContract instr cp st -> Value' instr st
+ Morley.Michelson.Typed: [ceaApplyEffects] :: CtorEffectsApp x -> forall i o. Semigroup x => x -> x -> Instr i o -> (Instr i o, x)
+ Morley.Michelson.Typed: [ceaName] :: CtorEffectsApp x -> Text
+ Morley.Michelson.Typed: [crAddress] :: ContractRef (arg :: Type) -> Address
+ Morley.Michelson.Typed: [crDescription] :: ConstructorRep a -> Maybe Text
+ Morley.Michelson.Typed: [crEntrypoint] :: ContractRef (arg :: Type) -> SomeEntrypointCall arg
+ Morley.Michelson.Typed: [crFields] :: ConstructorRep a -> [FieldRep a]
+ Morley.Michelson.Typed: [crName] :: ConstructorRep a -> Text
+ Morley.Michelson.Typed: [dsCtorEffectsApp] :: DfsSettings x -> CtorEffectsApp x
+ Morley.Michelson.Typed: [dsGoToValues] :: DfsSettings x -> Bool
+ Morley.Michelson.Typed: [eaAddress] :: EpAddress -> Address
+ Morley.Michelson.Typed: [eaEntrypoint] :: EpAddress -> EpName
+ Morley.Michelson.Typed: [epcLiftSequence] :: EntrypointCallT (param :: T) (arg :: T) -> EpLiftSequence arg param
+ Morley.Michelson.Typed: [epcName] :: EntrypointCallT (param :: T) (arg :: T) -> EpName
+ Morley.Michelson.Typed: [epcParamProxy] :: EntrypointCallT (param :: T) (arg :: T) -> Proxy param
+ Morley.Michelson.Typed: [frDescription] :: FieldRep a -> Maybe Text
+ Morley.Michelson.Typed: [frName] :: FieldRep a -> Maybe Text
+ Morley.Michelson.Typed: [frTypeRep] :: FieldRep a -> a
+ Morley.Michelson.Typed: [pnNotes] :: ParamNotes (t :: T) -> Notes t
+ Morley.Michelson.Typed: [pnRootAnn] :: ParamNotes (t :: T) -> RootAnn
+ Morley.Michelson.Typed: [sdCounter] :: SetDelegate -> GlobalCounter
+ Morley.Michelson.Typed: [sdMbKeyHash] :: SetDelegate -> Maybe KeyHash
+ Morley.Michelson.Typed: [tAmount] :: Ticket (arg :: Type) -> Natural
+ Morley.Michelson.Typed: [tData] :: Ticket (arg :: Type) -> arg
+ Morley.Michelson.Typed: [tTicketer] :: Ticket (arg :: Type) -> Address
+ Morley.Michelson.Typed: [ttAmount] :: TransferTokens instr p -> Mutez
+ Morley.Michelson.Typed: [ttContract] :: TransferTokens instr p -> Value' instr ('TContract p)
+ Morley.Michelson.Typed: [ttCounter] :: TransferTokens instr p -> GlobalCounter
+ Morley.Michelson.Typed: [ttTransferArgument] :: TransferTokens instr p -> Value' instr p
+ Morley.Michelson.Typed: [unBigMapId] :: BigMapId k v -> Natural
+ Morley.Michelson.Typed: [unEpName] :: EpName -> Text
+ Morley.Michelson.Typed: [unOpSize] :: OpSize -> Word
+ Morley.Michelson.Typed: [unPrintComment] :: PrintComment (st :: [T]) -> [Either Text (StackRef st)]
+ Morley.Michelson.Typed: [unViewName] :: ViewName -> Text
+ Morley.Michelson.Typed: [unViewsSet] :: ViewsSet' instr st -> Seq $ SomeView' instr st
+ Morley.Michelson.Typed: [vArgument] :: View' instr arg st ret -> Notes arg
+ Morley.Michelson.Typed: [vCode] :: View' instr arg st ret -> ViewCode' instr arg st ret
+ Morley.Michelson.Typed: [vName] :: View' instr arg st ret -> ViewName
+ Morley.Michelson.Typed: [vReturn] :: View' instr arg st ret -> Notes ret
+ Morley.Michelson.Typed: addViewToSet :: View' instr arg st ret -> ViewsSet' instr st -> Either ViewsSetError (ViewsSet' instr st)
+ Morley.Michelson.Typed: addressToVContract :: forall t instr. (ParameterScope t, ForbidOr t) => Address -> Value' instr ('TContract t)
+ Morley.Michelson.Typed: allAtomicValues :: forall t a. (forall t'. Value t' -> Maybe a) -> Value t -> [a]
+ Morley.Michelson.Typed: appendCtorFieldAxiom :: (AppendCtorFieldAxiom ('OneField Word) '[Int], AppendCtorFieldAxiom 'NoFields '[Int]) => Dict (AppendCtorFieldAxiom cf st)
+ Morley.Michelson.Typed: applyWithinParens :: WithinParens -> Markdown -> Markdown
+ Morley.Michelson.Typed: bigMapAbsense :: Sing (t :: T) -> Maybe (Dict $ HasNoBigMap t)
+ Morley.Michelson.Typed: buildADTRep :: forall a. (WithinParens -> a -> Markdown) -> ADTRep a -> Markdown
+ Morley.Michelson.Typed: buildInstrDoc :: Instr inp out -> ContractDoc
+ Morley.Michelson.Typed: buildInstrDocWithGitRev :: DGitRevision -> Instr inp out -> ContractDoc
+ Morley.Michelson.Typed: buildStack :: [T] -> Builder
+ Morley.Michelson.Typed: buildTypeWithinParens :: forall a. Typeable a => WithinParens -> Markdown
+ Morley.Michelson.Typed: buildVContract :: Value' instr ('TContract arg) -> Builder
+ Morley.Michelson.Typed: castFieldConstructorsImpl :: CastFieldConstructors xs ys => Rec (FieldConstructor st) xs -> Rec (FieldConstructor st) ys
+ Morley.Michelson.Typed: castInstr :: forall inp1 out1 inp2 out2. (SingI inp1, SingI out1, SingI inp2, SingI out2) => Instr inp1 out1 -> Maybe (Instr inp2 out2)
+ Morley.Michelson.Typed: castM :: forall (a :: T) (b :: T) t m. (SingI a, SingI b, Monad m) => t a -> (forall x. Demote (KindOf a) -> Demote (KindOf b) -> m x) -> m (t b)
+ Morley.Michelson.Typed: castSingE :: forall (a :: T) (b :: T) t. (SingI a, SingI b) => t a -> Either Text (t b)
+ Morley.Michelson.Typed: ceaBottomToTop :: CtorEffectsApp x
+ Morley.Michelson.Typed: checkBigMapPresence :: Sing (ty :: T) -> BigMapPresence ty
+ Morley.Michelson.Typed: checkComparability :: Sing t -> Comparability t
+ Morley.Michelson.Typed: checkContractTypePresence :: Sing (ty :: T) -> ContractPresence ty
+ Morley.Michelson.Typed: checkNestedBigMapsPresence :: Sing (ty :: T) -> NestedBigMapsPresence ty
+ Morley.Michelson.Typed: checkOpPresence :: Sing (ty :: T) -> OpPresence ty
+ Morley.Michelson.Typed: checkScope :: CheckScope c => Either BadTypeForScope (Dict c)
+ Morley.Michelson.Typed: checkTicketPresence :: Sing (ty :: T) -> TicketPresence ty
+ Morley.Michelson.Typed: class (Typeable n, Typeable m) => ArithOp aop (n :: T) (m :: T) where {
+ Morley.Michelson.Typed: class ToTs xs ~ ToTs ys => CastFieldConstructors xs ys
+ Morley.Michelson.Typed: class CheckScope (c :: Constraint)
+ Morley.Michelson.Typed: class (IsComparable t ~ 'True) => Comparable t
+ Morley.Michelson.Typed: class ConcatOp (c :: T)
+ Morley.Michelson.Typed: class (SingI t, HasNoOp t, HasNoBigMap t, HasNoContract t, HasNoTicket t) => ConstantScope t
+ Morley.Michelson.Typed: class (SingI t, HasNoTicket t) => DupableScope t
+ Morley.Michelson.Typed: class EDivOp (n :: T) (m :: T) where {
+ Morley.Michelson.Typed: class GProductHasDoc (x :: Type -> Type)
+ Morley.Michelson.Typed: class GTypeHasDoc (x :: Type -> Type)
+ Morley.Michelson.Typed: class GetOp (c :: T) where {
+ Morley.Michelson.Typed: class (ContainsBigMap t ~ 'False) => HasNoBigMap t
+ Morley.Michelson.Typed: class (ContainsContract t ~ 'False) => HasNoContract t
+ Morley.Michelson.Typed: class (ContainsNestedBigMaps t ~ 'False) => HasNoNestedBigMaps t
+ Morley.Michelson.Typed: class (ContainsOp t ~ 'False) => HasNoOp t
+ Morley.Michelson.Typed: class (ContainsTicket t ~ 'False) => HasNoTicket t
+ Morley.Michelson.Typed: class HaveCommonTypeCtor a b
+ Morley.Michelson.Typed: class IsHomomorphic a
+ Morley.Michelson.Typed: class (WellTypedToT a) => IsoValue a where {
+ Morley.Michelson.Typed: class IsoValuesStack (ts :: [Type])
+ Morley.Michelson.Typed: class IterOp (c :: T) where {
+ Morley.Michelson.Typed: class MapOp (c :: T) where {
+ Morley.Michelson.Typed: class MemOp (c :: T) where {
+ Morley.Michelson.Typed: class (SingI t, HasNoOp t, HasNoBigMap t, HasNoTicket t) => PackedValScope t
+ Morley.Michelson.Typed: class (SingI t, HasNoOp t, HasNoNestedBigMaps t) => ParameterScope t
+ Morley.Michelson.Typed: class SingI (a :: k)
+ Morley.Michelson.Typed: class SizeOp (c :: T)
+ Morley.Michelson.Typed: class SliceOp (c :: T)
+ Morley.Michelson.Typed: class (SingI t, HasNoOp t, HasNoNestedBigMaps t, HasNoContract t) => StorageScope t
+ Morley.Michelson.Typed: class ToBigMap m where {
+ Morley.Michelson.Typed: class ToIntArithOp (n :: T)
+ Morley.Michelson.Typed: class (Typeable a, SingI (TypeDocFieldDescriptions a), FieldDescriptionsValid (TypeDocFieldDescriptions a) a) => TypeHasDoc a where {
+ Morley.Michelson.Typed: class UnaryArithOp aop (n :: T) where {
+ Morley.Michelson.Typed: class (PackedValScope t, ConstantScope t) => UnpackedValScope t
+ Morley.Michelson.Typed: class UpdOp (c :: T) where {
+ Morley.Michelson.Typed: class (SingI t, HasNoOp t, HasNoBigMap t, HasNoTicket t) => ViewableScope t
+ Morley.Michelson.Typed: class (SingI t, WellTypedSuperC t) => WellTyped (t :: T)
+ Morley.Michelson.Typed: class WithDeMorganScope (c :: T -> Constraint) t a b
+ Morley.Michelson.Typed: coerceContractRef :: ToT a ~ ToT b => ContractRef a -> ContractRef b
+ Morley.Michelson.Typed: commutativityProof :: ArithOp aop n m => Maybe $ Dict (ArithRes aop n m ~ ArithRes aop m n, ArithOp aop m n)
+ Morley.Michelson.Typed: comparabilityPresence :: Sing t -> Maybe (Dict $ Comparable t)
+ Morley.Michelson.Typed: compareOp :: Comparable t => Value' i t -> Value' i t -> Integer
+ Morley.Michelson.Typed: compileEpLiftSequence :: EpLiftSequence arg param -> Value' instr arg -> Value' instr param
+ Morley.Michelson.Typed: concreteTypeDocHaskellRep :: forall a b. (Typeable a, GenericIsoValue a, GTypeHasDoc (Rep a), HaveCommonTypeCtor b a) => TypeDocHaskellRep b
+ Morley.Michelson.Typed: concreteTypeDocMichelsonRep :: forall a b. (Typeable a, KnownIsoT a, HaveCommonTypeCtor b a) => TypeDocMichelsonRep b
+ Morley.Michelson.Typed: contractOpSize :: Contract cp st -> OpSize
+ Morley.Michelson.Typed: contractRefToAddr :: ContractRef cp -> EpAddress
+ Morley.Michelson.Typed: contractTypeAbsense :: Sing (t :: T) -> Maybe (Dict $ HasNoContract t)
+ Morley.Michelson.Typed: converge :: Notes t -> Notes t -> Either AnnConvergeError (Notes t)
+ Morley.Michelson.Typed: convergeAnns :: forall (tag :: Type). (Buildable (Annotation tag), Show (Annotation tag), Typeable tag) => Annotation tag -> Annotation tag -> Either AnnConvergeError (Annotation tag)
+ Morley.Michelson.Typed: convergeArith :: ArithOp aop n m => proxy aop -> Notes n -> Notes m -> Either AnnConvergeError (Notes (ArithRes aop n m))
+ Morley.Michelson.Typed: convergeDestrAnns :: FieldAnn -> FieldAnn -> Either AnnConvergeError FieldAnn
+ Morley.Michelson.Typed: convergeEDiv :: EDivOp n m => Notes n -> Notes m -> Either AnnConvergeError (Notes ('TOption ('TPair (EDivOpRes n m) (EModOpRes n m))))
+ Morley.Michelson.Typed: convertContract :: Contract param store -> Contract
+ Morley.Michelson.Typed: convertContractCode :: forall param store. (SingI param, SingI store) => ContractCode param store -> Contract
+ Morley.Michelson.Typed: convertParamNotes :: SingI cp => ParamNotes cp -> ParameterType
+ Morley.Michelson.Typed: convertSomeView :: SomeView st -> View
+ Morley.Michelson.Typed: convertView :: forall arg store ret. View arg store ret -> View
+ Morley.Michelson.Typed: crDescriptionL :: forall a_a6Pns. Lens' (ConstructorRep a_a6Pns) (Maybe Text)
+ Morley.Michelson.Typed: crFieldsL :: forall a_a6Pns a_a6PoE. Lens (ConstructorRep a_a6Pns) (ConstructorRep a_a6PoE) [FieldRep a_a6Pns] [FieldRep a_a6PoE]
+ Morley.Michelson.Typed: crNameL :: forall a_a6Pns. Lens' (ConstructorRep a_a6Pns) Text
+ Morley.Michelson.Typed: customTypeDocMdReference :: (Text, DType) -> [DType] -> WithinParens -> Markdown
+ Morley.Michelson.Typed: customTypeDocMdReference' :: (Text, DType) -> [WithinParens -> Markdown] -> WithinParens -> Markdown
+ Morley.Michelson.Typed: cutInstrNonDoc :: (forall i o. Instr i o -> Instr i o) -> Instr inp out -> Instr s s
+ Morley.Michelson.Typed: dStorage :: forall store. TypeHasDoc store => DStorageType
+ Morley.Michelson.Typed: dTypeDep :: forall (t :: Type). TypeHasDoc t => SomeDocDefinitionItem
+ Morley.Michelson.Typed: dTypeDepP :: forall (t :: Type). TypeHasDoc t => Proxy t -> SomeDocDefinitionItem
+ Morley.Michelson.Typed: data Abs
+ Morley.Michelson.Typed: data Add
+ Morley.Michelson.Typed: data And
+ Morley.Michelson.Typed: data AnnConvergeError
+ Morley.Michelson.Typed: data AnnotatedValue v
+ Morley.Michelson.Typed: data ArithError n m
+ Morley.Michelson.Typed: data ArmCoord
+ Morley.Michelson.Typed: data BadTypeForScope
+ Morley.Michelson.Typed: data BigMap k v
+ Morley.Michelson.Typed: data BigMapPresence (t :: T)
+ Morley.Michelson.Typed: data Branch
+ Morley.Michelson.Typed: data CaseClause (inp :: [T]) (out :: [T]) (param :: CaseClauseParam)
+ Morley.Michelson.Typed: data CaseClauseParam
+ Morley.Michelson.Typed: data CommentType
+ Morley.Michelson.Typed: data Comparability t
+ Morley.Michelson.Typed: data Compare
+ Morley.Michelson.Typed: data ComposeResult a
+ Morley.Michelson.Typed: data ConstructorRep a
+ Morley.Michelson.Typed: data Contract' instr cp st
+ Morley.Michelson.Typed: data ContractPresence (t :: T)
+ Morley.Michelson.Typed: data ContractRef (arg :: Type)
+ Morley.Michelson.Typed: data CreateContract instr cp st
+ Morley.Michelson.Typed: data CtorEffectsApp x
+ Morley.Michelson.Typed: data CtorField
+ Morley.Michelson.Typed: data DType
+ Morley.Michelson.Typed: data DfsSettings x
+ Morley.Michelson.Typed: data Dict a
+ Morley.Michelson.Typed: data EDiv
+ Morley.Michelson.Typed: data EntrypointCallT (param :: T) (arg :: T)
+ Morley.Michelson.Typed: data EpAddress
+ Morley.Michelson.Typed: data EpLiftSequence (arg :: T) (param :: T)
+ Morley.Michelson.Typed: data EpNameFromRefAnnError
+ Morley.Michelson.Typed: data Eq'
+ Morley.Michelson.Typed: data ExtInstr s
+ Morley.Michelson.Typed: data FieldRep a
+ Morley.Michelson.Typed: data Ge
+ Morley.Michelson.Typed: data Gt
+ Morley.Michelson.Typed: data Instr (inp :: [T]) (out :: [T])
+ Morley.Michelson.Typed: data Le
+ Morley.Michelson.Typed: data Lsl
+ Morley.Michelson.Typed: data Lsr
+ Morley.Michelson.Typed: data Lt
+ Morley.Michelson.Typed: data MkEntrypointCallRes param
+ Morley.Michelson.Typed: data Mul
+ Morley.Michelson.Typed: data MutezArithErrorType
+ Morley.Michelson.Typed: data MyCompoundType
+ Morley.Michelson.Typed: data Neg
+ Morley.Michelson.Typed: data Neq
+ Morley.Michelson.Typed: data NestedBigMapsPresence (t :: T)
+ Morley.Michelson.Typed: data Not
+ Morley.Michelson.Typed: data Notes t
+ Morley.Michelson.Typed: data OpPresence (t :: T)
+ Morley.Michelson.Typed: data Operation' instr
+ Morley.Michelson.Typed: data Or
+ Morley.Michelson.Typed: data ParamEpError
+ Morley.Michelson.Typed: data ParamNotes (t :: T)
+ Morley.Michelson.Typed: data ParseEpAddressError
+ Morley.Michelson.Typed: data PushableStorageSplit s st
+ Morley.Michelson.Typed: data RemFail (instr :: k -> k -> Type) (i :: k) (o :: k)
+ Morley.Michelson.Typed: data SetDelegate
+ Morley.Michelson.Typed: data ShiftArithErrorType
+ Morley.Michelson.Typed: data SingT z_a1CBV
+ Morley.Michelson.Typed: data SomeAnnotatedValue
+ Morley.Michelson.Typed: data SomeConstant
+ Morley.Michelson.Typed: data SomeConstrainedValue (c :: T -> Constraint)
+ Morley.Michelson.Typed: data SomeContract
+ Morley.Michelson.Typed: data SomeContractAndStorage
+ Morley.Michelson.Typed: data SomeEntrypointCallT (arg :: T)
+ Morley.Michelson.Typed: data SomeIsoValue
+ Morley.Michelson.Typed: data SomeMeta
+ Morley.Michelson.Typed: data SomeStorage
+ Morley.Michelson.Typed: data SomeTypeWithDoc
+ Morley.Michelson.Typed: data SomeValue
+ Morley.Michelson.Typed: data SomeView' instr st
+ Morley.Michelson.Typed: data SomeViewsSet' instr
+ Morley.Michelson.Typed: data StackRef (st :: [T])
+ Morley.Michelson.Typed: data Sub
+ Morley.Michelson.Typed: data T
+ Morley.Michelson.Typed: data TestAssert (s :: [T])
+ Morley.Michelson.Typed: data Ticket (arg :: Type)
+ Morley.Michelson.Typed: data TicketPresence (t :: T)
+ Morley.Michelson.Typed: data TransferTokens instr p
+ Morley.Michelson.Typed: data Value' instr t
+ Morley.Michelson.Typed: data View' instr arg st ret
+ Morley.Michelson.Typed: data ViewsSetError
+ Morley.Michelson.Typed: data Xor
+ Morley.Michelson.Typed: defaultContract :: (ParameterScope cp, StorageScope st) => ContractCode' instr cp st -> Contract' instr cp st
+ Morley.Michelson.Typed: dfsFoldInstr :: forall x inp out. Semigroup x => DfsSettings x -> (forall i o. Instr i o -> x) -> Instr inp out -> x
+ Morley.Michelson.Typed: dfsFoldMapValue :: Monoid x => (forall t'. Value t' -> x) -> Value t -> x
+ Morley.Michelson.Typed: dfsFoldMapValueM :: (Monoid x, Monad m) => (forall t'. Value t' -> m x) -> Value t -> m x
+ Morley.Michelson.Typed: dfsInstr :: forall x inp out. Semigroup x => DfsSettings x -> (forall i o. Instr i o -> (Instr i o, x)) -> Instr inp out -> (Instr inp out, x)
+ Morley.Michelson.Typed: dfsMapValue :: forall t. (forall t'. Value t' -> Value t') -> Value t -> Value t
+ Morley.Michelson.Typed: dfsModifyInstr :: DfsSettings () -> (forall i o. Instr i o -> Instr i o) -> Instr inp out -> Instr inp out
+ Morley.Michelson.Typed: dfsTraverseValue :: forall t m. Monad m => (forall t'. Value t' -> m (Value t')) -> Value t -> m (Value t)
+ Morley.Michelson.Typed: divMich :: Integral a => a -> a -> a
+ Morley.Michelson.Typed: docInstr :: DocItem di => di -> Instr s s
+ Morley.Michelson.Typed: emptyViewsSet :: ViewsSet' instr st
+ Morley.Michelson.Typed: epNameFromParamAnn :: FieldAnn -> Maybe EpName
+ Morley.Michelson.Typed: epNameFromRefAnn :: FieldAnn -> Either EpNameFromRefAnnError EpName
+ Morley.Michelson.Typed: epNameToParamAnn :: EpName -> FieldAnn
+ Morley.Michelson.Typed: epNameToRefAnn :: EpName -> FieldAnn
+ Morley.Michelson.Typed: epcPrimitive :: forall p. (ParameterScope p, ForbidOr p) => EntrypointCallT p p
+ Morley.Michelson.Typed: eqP :: forall (a :: T) (b :: T). (SingI a, SingI b) => Proxy a -> Proxy b -> Maybe (a :~: b)
+ Morley.Michelson.Typed: eqValueExt :: Value' instr t1 -> Value' instr t2 -> Bool
+ Morley.Michelson.Typed: evalConcat :: ConcatOp c => Value' instr c -> Value' instr c -> Value' instr c
+ Morley.Michelson.Typed: evalConcat' :: ConcatOp c => [Value' instr c] -> Value' instr c
+ Morley.Michelson.Typed: evalEDivOp :: EDivOp n m => Value' instr n -> Value' instr m -> Value' instr ('TOption ('TPair (EDivOpRes n m) (EModOpRes n m)))
+ Morley.Michelson.Typed: evalGet :: GetOp c => Value' instr (GetOpKey c) -> Value' instr c -> Maybe (Value' instr (GetOpVal c))
+ Morley.Michelson.Typed: evalMem :: MemOp c => Value' instr (MemOpKey c) -> Value' instr c -> Bool
+ Morley.Michelson.Typed: evalOp :: ArithOp aop n m => proxy aop -> Value' instr n -> Value' instr m -> Either (ArithError (Value' instr n) (Value' instr m)) (Value' instr (ArithRes aop n m))
+ Morley.Michelson.Typed: evalSize :: SizeOp c => Value' instr c -> Int
+ Morley.Michelson.Typed: evalSlice :: SliceOp c => Natural -> Natural -> Value' instr c -> Maybe (Value' instr c)
+ Morley.Michelson.Typed: evalToIntOp :: ToIntArithOp n => Value' instr n -> Value' instr 'TInt
+ Morley.Michelson.Typed: evalUnaryArithOp :: UnaryArithOp aop n => proxy aop -> Value' instr n -> Value' instr (UnaryArithRes aop n)
+ Morley.Michelson.Typed: evalUpd :: UpdOp c => Value' instr (UpdOpKey c) -> Value' instr (UpdOpParams c) -> Value' instr c -> Value' instr c
+ Morley.Michelson.Typed: flattenEntrypoints :: SingI t => ParamNotes t -> Map EpName Ty
+ Morley.Michelson.Typed: forbiddenBigMap :: forall t a. (SingI t, ForbidBigMap t) => (HasNoBigMap t => a) -> a
+ Morley.Michelson.Typed: forbiddenContractType :: forall t a. (SingI t, ForbidContract t) => (HasNoContract t => a) -> a
+ Morley.Michelson.Typed: forbiddenNestedBigMaps :: forall t a. (SingI t, ForbidNestedBigMaps t) => (HasNoNestedBigMaps t => a) -> a
+ Morley.Michelson.Typed: forbiddenOp :: forall t a. (SingI t, ForbidOp t) => (HasNoOp t => a) -> a
+ Morley.Michelson.Typed: formatEpAddress :: EpAddress -> Text
+ Morley.Michelson.Typed: frDescriptionL :: forall a_a6Pnr. Lens' (FieldRep a_a6Pnr) (Maybe Text)
+ Morley.Michelson.Typed: frNameL :: forall a_a6Pnr. Lens' (FieldRep a_a6Pnr) (Maybe Text)
+ Morley.Michelson.Typed: frTypeRepL :: forall a_a6Pnr a_a6Pqm. Lens (FieldRep a_a6Pnr) (FieldRep a_a6Pqm) a_a6Pnr a_a6Pqm
+ Morley.Michelson.Typed: fromTaggedVal :: LooseSumC dt => (Text, SomeValue) -> ComposeResult dt
+ Morley.Michelson.Typed: fromUType :: Ty -> T
+ Morley.Michelson.Typed: fromVal :: (IsoValue a, Generic a, GIsoValue (Rep a), ToT a ~ GValueType (Rep a)) => Value (ToT a) -> a
+ Morley.Michelson.Typed: fromValStack :: IsoValuesStack ts => Rec Value (ToTs ts) -> Rec Identity ts
+ Morley.Michelson.Typed: genericTypeDocDependencies :: forall a. (Generic a, GTypeHasDoc (Rep a)) => Proxy a -> [SomeDocDefinitionItem]
+ Morley.Michelson.Typed: getComparableProofS :: Sing (a :: T) -> Maybe (Dict (Comparable a))
+ Morley.Michelson.Typed: haskellAddNewtypeField :: Text -> TypeDocHaskellRep a -> TypeDocHaskellRep a
+ Morley.Michelson.Typed: haskellRepNoFields :: TypeDocHaskellRep a -> TypeDocHaskellRep a
+ Morley.Michelson.Typed: haskellRepStripFieldPrefix :: HasCallStack => TypeDocHaskellRep a -> TypeDocHaskellRep a
+ Morley.Michelson.Typed: homomorphicTypeDocHaskellRep :: forall a. (Generic a, GTypeHasDoc (Rep a)) => TypeDocHaskellRep a
+ Morley.Michelson.Typed: homomorphicTypeDocMdReference :: forall (t :: Type). (Typeable t, TypeHasDoc t, IsHomomorphic t) => Proxy t -> WithinParens -> Markdown
+ Morley.Michelson.Typed: homomorphicTypeDocMichelsonRep :: forall a. KnownIsoT a => TypeDocMichelsonRep a
+ Morley.Michelson.Typed: hsUnwrap :: forall dt name. InstrUnwrapC dt name => Label name -> dt -> Maybe (CtorOnlyField name dt)
+ Morley.Michelson.Typed: hsWrap :: forall dt name. InstrWrapC dt name => Label name -> ExtractCtorField (GetCtorField dt name) -> dt
+ Morley.Michelson.Typed: infixr 8 //->
+ Morley.Michelson.Typed: infixr 9 :-
+ Morley.Michelson.Typed: insertTypeAnn :: forall (b :: T). TypeAnn -> Notes b -> Notes b
+ Morley.Michelson.Typed: instrCase :: forall dt out inp. InstrCaseC dt => Rec (CaseClause inp out) (CaseClauses dt) -> RemFail Instr (ToT dt : inp) out
+ Morley.Michelson.Typed: instrConstruct :: forall dt st. InstrConstructC dt => Rec (FieldConstructor st) (ConstructorFieldTypes dt) -> Instr st (ToT dt : st)
+ Morley.Michelson.Typed: instrConstructStack :: forall dt stack st. (InstrConstructC dt, stack ~ ToTs (ConstructorFieldTypes dt), KnownList stack) => Instr (stack ++ st) (ToT dt : st)
+ Morley.Michelson.Typed: instrDeconstruct :: forall dt stack st. (InstrDeconstructC dt, stack ~ ToTs (ConstructorFieldTypes dt), KnownList stack) => Instr (ToT dt : st) (stack ++ st)
+ Morley.Michelson.Typed: instrOpSize :: Instr inp out -> OpSize
+ Morley.Michelson.Typed: instrSetField :: forall dt name st. InstrSetFieldC dt name => Label name -> Instr (ToT (GetFieldType dt name) : (ToT dt : st)) (ToT dt : st)
+ Morley.Michelson.Typed: instrToField :: forall dt name st. InstrGetFieldC dt name => Label name -> Instr (ToT dt : st) (ToT (GetFieldType dt name) : st)
+ Morley.Michelson.Typed: instrToOps :: HasCallStack => Instr inp out -> [ExpandedOp]
+ Morley.Michelson.Typed: instrToOpsOptimized :: HasCallStack => Instr inp out -> [ExpandedOp]
+ Morley.Michelson.Typed: instrWrap :: forall dt name st. InstrWrapC dt name => Label name -> Instr (AppendCtorField (GetCtorField dt name) st) (ToT dt : st)
+ Morley.Michelson.Typed: instrWrapOne :: forall dt name st. InstrWrapOneC dt name => Label name -> Instr (ToT (CtorOnlyField name dt) : st) (ToT dt : st)
+ Morley.Michelson.Typed: isBytesValue :: Value t -> Maybe ByteString
+ Morley.Michelson.Typed: isStar :: SingI t => Notes t -> Bool
+ Morley.Michelson.Typed: isStringValue :: Value t -> Maybe MText
+ Morley.Michelson.Typed: isoValue :: (IsoValue a, IsoValue b) => Iso (Value (ToT a)) (Value (ToT b)) a b
+ Morley.Michelson.Typed: iterOpDetachOne :: IterOp c => Value' instr c -> (Maybe (Value' instr (IterOpEl c)), Value' instr c)
+ Morley.Michelson.Typed: iterOpNotes :: IterOp c => Notes c -> Notes (IterOpEl c)
+ Morley.Michelson.Typed: liftCallArg :: EntrypointCallT param arg -> Value' instr arg -> Value' instr param
+ Morley.Michelson.Typed: ligoCombLayout :: GenericStrategy
+ Morley.Michelson.Typed: ligoLayout :: GenericStrategy
+ Morley.Michelson.Typed: linearizeLeft :: Instr inp out -> Instr inp out
+ Morley.Michelson.Typed: linearizeLeftDeep :: Instr inp out -> Instr inp out
+ Morley.Michelson.Typed: lookupView :: ViewName -> ViewsSet' instr st -> Maybe (SomeView' instr st)
+ Morley.Michelson.Typed: mapContractCode :: (forall i o. instr i o -> instr i o) -> Contract' instr cp st -> Contract' instr cp st
+ Morley.Michelson.Typed: mapContractCodeBlock :: (ContractCode' instr cp st -> ContractCode' instr cp st) -> Contract' instr cp st -> Contract' instr cp st
+ Morley.Michelson.Typed: mapContractViewBlocks :: (forall arg ret. ViewCode' instr arg st ret -> ViewCode' instr arg st ret) -> Contract' instr cp st -> Contract' instr cp st
+ Morley.Michelson.Typed: mapEntriesOrdered :: Contract' instr cp st -> (ParamNotes cp -> a) -> (Notes st -> a) -> (ContractCode' instr cp st -> a) -> [a]
+ Morley.Michelson.Typed: mapOpFromList :: (MapOp c, SingI b) => Value' instr c -> [Value' instr b] -> Value' instr (MapOpRes c b)
+ Morley.Michelson.Typed: mapOpNotes :: MapOp c => Notes c -> Notes (MapOpInp c)
+ Morley.Michelson.Typed: mapOpToList :: MapOp c => Value' instr c -> [Value' instr (MapOpInp c)]
+ Morley.Michelson.Typed: mformatEpAddress :: EpAddress -> MText
+ Morley.Michelson.Typed: mkBigMap :: ToBigMap m => m -> BigMap (ToBigMapKey m) (ToBigMapValue m)
+ Morley.Michelson.Typed: mkEntrypointCall :: ParameterScope param => EpName -> ParamNotes param -> Maybe (MkEntrypointCallRes param)
+ Morley.Michelson.Typed: mkParamNotes :: Notes t -> RootAnn -> Either ParamEpError (ParamNotes t)
+ Morley.Michelson.Typed: mkStackRef :: forall (gn :: Nat) st n. (n ~ ToPeano gn, SingI (ToPeano gn), RequireLongerThan st n) => StackRef st
+ Morley.Michelson.Typed: mkUType :: SingI x => Notes x -> Ty
+ Morley.Michelson.Typed: mkUType' :: (Sing x, Notes x) -> Ty
+ Morley.Michelson.Typed: mkViewName :: Text -> Either BadViewNameError ViewName
+ Morley.Michelson.Typed: mkViewsSet :: [SomeView' instr st] -> Either ViewsSetError (ViewsSet' instr st)
+ Morley.Michelson.Typed: modMich :: Integral a => a -> a -> a
+ Morley.Michelson.Typed: modifyInstrAllDoc :: (SomeDocItem -> SomeDocItem) -> Instr inp out -> Instr inp out
+ Morley.Michelson.Typed: modifyInstrDoc :: (DocItem i1, DocItem i2) => (i1 -> Maybe i2) -> Instr inp out -> Instr inp out
+ Morley.Michelson.Typed: nestedBigMapsAbsense :: Sing (t :: T) -> Maybe (Dict $ HasNoNestedBigMaps t)
+ Morley.Michelson.Typed: newtype BigMapId k v
+ Morley.Michelson.Typed: newtype DStorageType
+ Morley.Michelson.Typed: newtype EpName
+ Morley.Michelson.Typed: newtype FieldConstructor (st :: [k]) (field :: Type)
+ Morley.Michelson.Typed: newtype OpSize
+ Morley.Michelson.Typed: newtype PrintComment (st :: [T])
+ Morley.Michelson.Typed: newtype ViewName
+ Morley.Michelson.Typed: newtype ViewsSet' instr st
+ Morley.Michelson.Typed: newtype WithinParens
+ Morley.Michelson.Typed: newtype a :- b
+ Morley.Michelson.Typed: notesSing :: SingI t => Notes t -> Sing t
+ Morley.Michelson.Typed: notesT :: SingI t => Notes t -> T
+ Morley.Michelson.Typed: opAbsense :: Sing (t :: T) -> Maybe (Dict $ HasNoOp t)
+ Morley.Michelson.Typed: opSizeHardLimit :: OpSize
+ Morley.Michelson.Typed: parseEpAddress :: Text -> Either ParseEpAddressError EpAddress
+ Morley.Michelson.Typed: parseEpAddressRaw :: ByteString -> Either ParseEpAddressError EpAddress
+ Morley.Michelson.Typed: pattern (:#) :: Instr a b -> Instr b c -> Instr a c
+ Morley.Michelson.Typed: pattern DefEpName :: EpName
+ Morley.Michelson.Typed: pattern CAR :: () => (i ~ ('TPair a b : s), o ~ (a : s)) => Instr i o
+ Morley.Michelson.Typed: pattern AsUType :: () => SingI t => Notes t -> Ty
+ Morley.Michelson.Typed: pattern ParamNotes :: Notes t -> RootAnn -> ParamNotes t
+ Morley.Michelson.Typed: pattern AsUTypeExt :: () => SingI t => Sing t -> Notes t -> Ty
+ Morley.Michelson.Typed: pattern ViewName :: Text -> ViewName
+ Morley.Michelson.Typed: pattern ViewsList :: [SomeView' instr st] -> ViewsSet' instr st
+ Morley.Michelson.Typed: pattern ViewsSet :: Seq (SomeView' instr st) -> ViewsSet' instr st
+ Morley.Michelson.Typed: poly1TypeDocMdReference :: forall t (r :: Type) (a :: Type). (r ~ t a, Typeable t, Each '[TypeHasDoc] [r, a], IsHomomorphic t) => Proxy r -> WithinParens -> Markdown
+ Morley.Michelson.Typed: poly2TypeDocMdReference :: forall t (r :: Type) (a :: Type) (b :: Type). (r ~ t a b, Typeable t, Each '[TypeHasDoc] [r, a, b], IsHomomorphic t) => Proxy r -> WithinParens -> Markdown
+ Morley.Michelson.Typed: properConstantEvi :: forall t. ProperConstantBetterErrors t :- ConstantScope t
+ Morley.Michelson.Typed: properDupableEvi :: forall t. ProperDupableBetterErrors t :- DupableScope t
+ Morley.Michelson.Typed: properPackedValEvi :: forall t. ProperPackedValBetterErrors t :- PackedValScope t
+ Morley.Michelson.Typed: properParameterEvi :: forall t. ProperParameterBetterErrors t :- ParameterScope t
+ Morley.Michelson.Typed: properStorageEvi :: forall t. ProperStorageBetterErrors t :- StorageScope t
+ Morley.Michelson.Typed: properUnpackedValEvi :: forall t. ProperUnpackedValBetterErrors t :- UnpackedValScope t
+ Morley.Michelson.Typed: properUntypedValEvi :: forall t. ProperUntypedValBetterErrors t :- UntypedValScope t
+ Morley.Michelson.Typed: properViewableEvi :: forall t. ProperViewableBetterErrors t :- ViewableScope t
+ Morley.Michelson.Typed: requireEq :: forall (a :: T) (b :: T) m. (SingI a, SingI b, Monad m) => (forall x. Demote (KindOf a) -> Demote (KindOf b) -> m x) -> m (a :~: b)
+ Morley.Michelson.Typed: rfAnyInstr :: RemFail instr i o -> instr i o
+ Morley.Michelson.Typed: rfMapAnyInstr :: (forall o'. instr i1 o' -> instr i2 o') -> RemFail instr i1 o -> RemFail instr i2 o
+ Morley.Michelson.Typed: rfMerge :: (forall o'. instr i1 o' -> instr i2 o' -> instr i3 o') -> RemFail instr i1 o -> RemFail instr i2 o -> RemFail instr i3 o
+ Morley.Michelson.Typed: sampleTypedValue :: Sing t -> Maybe (Value t)
+ Morley.Michelson.Typed: sepcName :: SomeEntrypointCallT arg -> EpName
+ Morley.Michelson.Typed: sepcPrimitive :: forall t. (ParameterScope t, ForbidOr t) => SomeEntrypointCallT t
+ Morley.Michelson.Typed: sing :: SingI a => Sing a
+ Morley.Michelson.Typed: smallTransferOpSize :: OpSize
+ Morley.Michelson.Typed: someViewName :: SomeView' instr st -> ViewName
+ Morley.Michelson.Typed: splitPushableStorage :: StorageScope t => Value t -> PushableStorageSplit s t
+ Morley.Michelson.Typed: starNotes :: forall t. SingI t => Notes t
+ Morley.Michelson.Typed: starParamNotes :: SingI t => ParamNotes t
+ Morley.Michelson.Typed: toTaggedVal :: LooseSumC dt => dt -> (Text, SomeValue)
+ Morley.Michelson.Typed: toUType :: T -> Ty
+ Morley.Michelson.Typed: toVal :: (IsoValue a, Generic a, GIsoValue (Rep a), ToT a ~ GValueType (Rep a)) => a -> Value (ToT a)
+ Morley.Michelson.Typed: toValStack :: IsoValuesStack ts => Rec Identity ts -> Rec Value (ToTs ts)
+ Morley.Michelson.Typed: totsAppendLemma :: forall a b. KnownList a => Dict (ToTs (a ++ b) ~ (ToTs a ++ ToTs b))
+ Morley.Michelson.Typed: totsKnownLemma :: forall s. KnownList s :- KnownList (ToTs s)
+ Morley.Michelson.Typed: tyImplicitAccountParam :: ParamNotes 'TUnit
+ Morley.Michelson.Typed: type ADTRep a = [ConstructorRep a]
+ Morley.Michelson.Typed: type AppendCtorFieldAxiom (cf :: CtorField) (st :: [Type]) = ToTs (AppendCtorField cf st) ~ AppendCtorField cf (ToTs st)
+ Morley.Michelson.Typed: type ArmCoords = [ArmCoord]
+ Morley.Michelson.Typed: type CaseClauses a = GCaseClauses (Rep a)
+ Morley.Michelson.Typed: type ComparabilityScope t = (SingI t, Comparable t)
+ Morley.Michelson.Typed: type ConstraintDIG n inp out a = ConstraintDIG' T n inp out a
+ Morley.Michelson.Typed: type ConstraintDIG' kind (n :: Peano) (inp :: [kind]) (out :: [kind]) (a :: kind) = (RequireLongerThan inp n, inp ~ (Take n inp ++ (a : Drop ('S n) inp)), out ~ (a : Take n inp ++ Drop ('S n) inp))
+ Morley.Michelson.Typed: type ConstraintDIPN n inp out s s' = ConstraintDIPN' T n inp out s s'
+ Morley.Michelson.Typed: type ConstraintDIPN' kind (n :: Peano) (inp :: [kind]) (out :: [kind]) (s :: [kind]) (s' :: [kind]) = (RequireLongerOrSameLength inp n, ((Take n inp) ++ s) ~ inp, ((Take n inp) ++ s') ~ out)
+ Morley.Michelson.Typed: type ConstraintDUG n inp out a = ConstraintDUG' T n inp out a
+ Morley.Michelson.Typed: type ConstraintDUG' kind (n :: Peano) (inp :: [kind]) (out :: [kind]) (a :: kind) = (RequireLongerThan out n, inp ~ (a : Drop ('S 'Z) inp), out ~ (Take n (Drop ('S 'Z) inp) ++ (a : Drop ('S n) inp)))
+ Morley.Michelson.Typed: type ConstraintDUPN n inp out a = ConstraintDUPN' T n inp out a
+ Morley.Michelson.Typed: type ConstraintDUPN' kind (n :: Peano) (inp :: [kind]) (out :: [kind]) (a :: kind) = (RequireLongerOrSameLength inp n, n > 'Z ~ 'True, inp ~ (Take (Decrement n) inp ++ (a : Drop n inp)), out ~ (a : inp))
+ Morley.Michelson.Typed: type ConstraintGetN (ix :: Peano) (pair :: T) = (TypeErrorUnless (CombedPairNodeIndexIsValid ix pair) (If (IsPair pair) ('Text "'GET " :<>: 'ShowType (FromPeano ix) :<>: 'Text "' expects a right-combed pair with at least " :<>: 'ShowType (FromPeano ix + 1) :<>: 'Text " nodes at the top of the stack," :$$: 'Text "but the pair only contains " :<>: 'ShowType (FromPeano (CombedPairNodeCount pair)) :<>: 'Text " nodes.") ('Text "Expected a pair at the top of the stack, but found: " :<>: 'ShowType pair)))
+ Morley.Michelson.Typed: type ConstraintPairN (n :: Peano) (inp :: [T]) = (RequireLongerOrSameLength inp n, TypeErrorUnless (n >= ToPeano 2) ('Text "'PAIR n' expects n \8805 2"))
+ Morley.Michelson.Typed: type ConstraintUnpairN (n :: Peano) (pair :: T) = (TypeErrorUnless (n >= ToPeano 2) ('Text "'UNPAIR n' expects n \8805 2"), TypeErrorUnless (CombedPairLeafCountIsAtLeast n pair) (If (IsPair pair) ('Text "'UNPAIR " :<>: 'ShowType (FromPeano n) :<>: 'Text "' expects a right-combed pair with at least " :<>: 'ShowType (FromPeano n) :<>: 'Text " elements at the top of the stack," :$$: 'Text "but the pair only contains " :<>: 'ShowType (FromPeano (CombedPairLeafCount pair)) :<>: 'Text " elements.") ('Text "Expected a pair at the top of the stack, but found: " :<>: 'ShowType pair)))
+ Morley.Michelson.Typed: type ConstraintUpdateN (ix :: Peano) (pair :: T) = (TypeErrorUnless (CombedPairNodeIndexIsValid ix pair) (If (IsPair pair) ('Text "'UPDATE " :<>: 'ShowType (FromPeano ix) :<>: 'Text "' expects the 2nd element of the stack to be a right-combed pair with at least " :<>: 'ShowType (FromPeano ix + 1) :<>: 'Text " nodes," :$$: 'Text "but the pair only contains " :<>: 'ShowType (FromPeano (CombedPairNodeCount pair)) :<>: 'Text " nodes.") ('Text "Expected the 2nd element of the stack to be a pair, but found: " :<>: 'ShowType pair)))
+ Morley.Michelson.Typed: type ConstructorFieldNames dt = GFieldNames (Rep dt)
+ Morley.Michelson.Typed: type ConstructorFieldTypes dt = GFieldTypes (Rep dt)
+ Morley.Michelson.Typed: type Contract = Contract' Instr
+ Morley.Michelson.Typed: type ContractCode cp st = ContractCode' Instr cp st
+ Morley.Michelson.Typed: type ContractCode' instr cp st = instr (ContractInp cp st) (ContractOut st)
+ Morley.Michelson.Typed: type ContractInp param st = '[ContractInp1 param st]
+ Morley.Michelson.Typed: type ContractInp1 param st = 'TPair param st
+ Morley.Michelson.Typed: type ContractOut st = '[ContractOut1 st]
+ Morley.Michelson.Typed: type ContractOut1 st = 'TPair ('TList 'TOperation) st
+ Morley.Michelson.Typed: type CtorHasOnlyField ctor dt f = GetCtorField dt ctor ~ 'OneField f
+ Morley.Michelson.Typed: type CtorOnlyField name dt = RequireOneField name (GetCtorField dt name)
+ Morley.Michelson.Typed: type EntrypointCall param arg = EntrypointCallT (ToT param) (ToT arg)
+ Morley.Michelson.Typed: type FieldDescriptions = [(Symbol, (Maybe Symbol, [(Symbol, Symbol)]))]
+ Morley.Michelson.Typed: type ForbidBigMap t = FailOnBigMapFound (ContainsBigMap t)
+ Morley.Michelson.Typed: type ForbidContract t = FailOnContractFound (ContainsContract t)
+ Morley.Michelson.Typed: type ForbidNestedBigMaps t = FailOnNestedBigMapsFound (ContainsNestedBigMaps t)
+ Morley.Michelson.Typed: type ForbidNonComparable t = FailOnNonComparableFound (IsComparable t)
+ Morley.Michelson.Typed: type ForbidOp t = FailOnOperationFound (ContainsOp t)
+ Morley.Michelson.Typed: type ForbidTicket t = FailOnTicketFound (ContainsTicket t)
+ Morley.Michelson.Typed: type GenericIsoValue t = (IsoValue t, Generic t, ToT t ~ GValueType (Rep t))
+ Morley.Michelson.Typed: type GetCtorField dt ctor = LnrFieldType (GetNamed ctor dt)
+ Morley.Michelson.Typed: type GetFieldType dt name = LnrFieldType (GetNamed name dt)
+ Morley.Michelson.Typed: type HasNoOpToT a = HasNoOp (ToT a)
+ Morley.Michelson.Typed: type InstrCaseC dt = (GenericIsoValue dt, GInstrCase (Rep dt))
+ Morley.Michelson.Typed: type InstrConstructC dt = (GenericIsoValue dt, GInstrConstruct (Rep dt))
+ Morley.Michelson.Typed: type InstrDeconstructC dt = (GenericIsoValue dt, GInstrDeconstruct (Rep dt))
+ Morley.Michelson.Typed: type InstrGetFieldC dt name = (GenericIsoValue dt, GInstrGet name (Rep dt) (LnrBranch (GetNamed name dt)) (LnrFieldType (GetNamed name dt)))
+ Morley.Michelson.Typed: type InstrSetFieldC dt name = (GenericIsoValue dt, GInstrSetField name (Rep dt) (LnrBranch (GetNamed name dt)) (LnrFieldType (GetNamed name dt)))
+ Morley.Michelson.Typed: type InstrUnwrapC dt name = (GenericIsoValue dt, GInstrUnwrap (Rep dt) (LnrBranch (GetNamed name dt)) (CtorOnlyField name dt))
+ Morley.Michelson.Typed: type InstrWrapC dt name = (GenericIsoValue dt, GInstrWrap (Rep dt) (LnrBranch (GetNamed name dt)) (LnrFieldType (GetNamed name dt)))
+ Morley.Michelson.Typed: type InstrWrapOneC dt name = (InstrWrapC dt name, GetCtorField dt name ~ 'OneField (CtorOnlyField name dt))
+ Morley.Michelson.Typed: type KnownIsoT a = SingI (ToT a)
+ Morley.Michelson.Typed: type LooseSumC dt = (Generic dt, GLooseSum (Rep dt))
+ Morley.Michelson.Typed: type Operation = Operation' Instr
+ Morley.Michelson.Typed: type PairN (n :: Peano) (s :: [T]) = (RightComb (Take n s) : Drop n s)
+ Morley.Michelson.Typed: type Path = [Branch]
+ Morley.Michelson.Typed: type PolyTypeHasDocC ts = Each '[TypeHasDoc] ts
+ Morley.Michelson.Typed: type ProperConstantBetterErrors t = (SingI t, ForbidOp t, ForbidBigMap t, ForbidContract t, ForbidTicket t)
+ Morley.Michelson.Typed: type ProperDupableBetterErrors t = (SingI t, ForbidTicket t)
+ Morley.Michelson.Typed: type ProperNonComparableValBetterErrors t = (SingI t, ForbidNonComparable t)
+ Morley.Michelson.Typed: type ProperPackedValBetterErrors t = (SingI t, ForbidOp t, ForbidBigMap t, ForbidTicket t)
+ Morley.Michelson.Typed: type ProperParameterBetterErrors t = (SingI t, ForbidOp t, ForbidNestedBigMaps t)
+ Morley.Michelson.Typed: type ProperStorageBetterErrors t = (SingI t, ForbidOp t, ForbidNestedBigMaps t, ForbidContract t)
+ Morley.Michelson.Typed: type ProperUnpackedValBetterErrors t = (ProperPackedValBetterErrors t, ProperConstantBetterErrors t)
+ Morley.Michelson.Typed: type ProperUntypedValBetterErrors t = (SingI t, ForbidOp t)
+ Morley.Michelson.Typed: type ProperViewableBetterErrors t = (SingI t, ForbidOp t, ForbidBigMap t, ForbidTicket t)
+ Morley.Michelson.Typed: type SomeEntrypointCall arg = SomeEntrypointCallT (ToT arg)
+ Morley.Michelson.Typed: type SomeView = SomeView' Instr
+ Morley.Michelson.Typed: type SomeViewsSet = SomeViewsSet' Instr
+ Morley.Michelson.Typed: type ToT a = GValueType (Rep a);
+ Morley.Michelson.Typed: type TypeDocFieldDescriptions _ = '[];
+ Morley.Michelson.Typed: type TypeDocHaskellRep a = Proxy a -> FieldDescriptionsV -> Maybe (Maybe DocTypeRepLHS, ADTRep SomeTypeWithDoc)
+ Morley.Michelson.Typed: type TypeDocMichelsonRep a = Proxy a -> (Maybe DocTypeRepLHS, T)
+ Morley.Michelson.Typed: type UntypedValScope t = (SingI t, HasNoOp t)
+ Morley.Michelson.Typed: type Value = Value' Instr
+ Morley.Michelson.Typed: type View = View' Instr
+ Morley.Michelson.Typed: type ViewCode arg st ret = ViewCode' Instr arg st ret
+ Morley.Michelson.Typed: type ViewCode' instr arg st ret = instr '[ 'TPair arg st] '[ret]
+ Morley.Michelson.Typed: type ViewsSet = ViewsSet' Instr
+ Morley.Michelson.Typed: type WellTypedIsoValue a = (WellTyped (ToT a), IsoValue a)
+ Morley.Michelson.Typed: type WellTypedToT a = WellTyped (ToT a)
+ Morley.Michelson.Typed: type family TypeDocFieldDescriptions a :: FieldDescriptions;
+ Morley.Michelson.Typed: typeDocBuiltMichelsonRep :: TypeHasDoc a => Proxy a -> Builder
+ Morley.Michelson.Typed: typeDocDependencies :: (TypeHasDoc a, Generic a, GTypeHasDoc (Rep a)) => Proxy a -> [SomeDocDefinitionItem]
+ Morley.Michelson.Typed: typeDocHaskellRep :: (TypeHasDoc a, Generic a, GTypeHasDoc (Rep a), IsHomomorphic a) => TypeDocHaskellRep a
+ Morley.Michelson.Typed: typeDocMdDescription :: TypeHasDoc a => Markdown
+ Morley.Michelson.Typed: typeDocMdReference :: (TypeHasDoc a, Typeable a, IsHomomorphic a) => Proxy a -> WithinParens -> Markdown
+ Morley.Michelson.Typed: typeDocMichelsonRep :: (TypeHasDoc a, KnownIsoT a, IsHomomorphic a) => TypeDocMichelsonRep a
+ Morley.Michelson.Typed: typeDocName :: (TypeHasDoc a, Generic a, KnownSymbol (GenericTypeName a)) => Proxy a -> Text
+ Morley.Michelson.Typed: unsafeConcreteTypeDocHaskellRep :: forall a b. (Typeable a, GenericIsoValue a, GTypeHasDoc (Rep a)) => TypeDocHaskellRep b
+ Morley.Michelson.Typed: unsafeConcreteTypeDocMichelsonRep :: forall a b. (Typeable a, KnownIsoT a) => TypeDocMichelsonRep b
+ Morley.Michelson.Typed: unsafeEpcCallRoot :: ParameterScope param => EntrypointCallT param param
+ Morley.Michelson.Typed: unsafeInstrUnwrap :: forall dt name st. InstrUnwrapC dt name => Label name -> Instr (ToT dt : st) (ToT (CtorOnlyField name dt) : st)
+ Morley.Michelson.Typed: unsafeMkViewName :: HasCallStack => Text -> ViewName
+ Morley.Michelson.Typed: unsafeParseEpAddress :: HasCallStack => Text -> EpAddress
+ Morley.Michelson.Typed: unsafeParseEpAddressRaw :: ByteString -> EpAddress
+ Morley.Michelson.Typed: unsafeSepcCallRoot :: ParameterScope param => SomeEntrypointCallT param
+ Morley.Michelson.Typed: untypeDemoteT :: forall (t :: T). SingI t => Ty
+ Morley.Michelson.Typed: untypeValue :: HasNoOp t => Value' Instr t -> Value
+ Morley.Michelson.Typed: untypeValueHashable :: HasNoOp t => Value' Instr t -> Value
+ Morley.Michelson.Typed: untypeValueOptimized :: HasNoOp t => Value' Instr t -> Value
+ Morley.Michelson.Typed: valueOpSize :: UntypedValScope t => Value t -> OpSize
+ Morley.Michelson.Typed: valueTypeSanity :: Value' instr t -> Dict (SingI t)
+ Morley.Michelson.Typed: viewNameToMText :: ViewName -> MText
+ Morley.Michelson.Typed: viewsSetNames :: ViewsSet' instr st -> [ViewName]
+ Morley.Michelson.Typed: withDeMorganScope :: (WithDeMorganScope c t a b, c (t a b)) => ((c a, c b) => ret) -> ret
+ Morley.Michelson.Typed: withDict :: HasDict c e => e -> (c => r) -> r
+ Morley.Michelson.Typed: withUType :: Ty -> (forall t. SingI t => Notes t -> r) -> r
+ Morley.Michelson.Typed: withValueTypeSanity :: Value' instr t -> (SingI t => a) -> a
+ Morley.Michelson.Typed: }
+ Morley.Michelson.Typed.AnnotatedValue: AnnotatedValue :: Notes (ToT v) -> Value (ToT v) -> AnnotatedValue v
+ Morley.Michelson.Typed.AnnotatedValue: [SomeAnnotatedValue] :: forall t. SingI t => Notes t -> Value t -> SomeAnnotatedValue
+ Morley.Michelson.Typed.AnnotatedValue: [avNotes] :: AnnotatedValue v -> Notes (ToT v)
+ Morley.Michelson.Typed.AnnotatedValue: [avValue] :: AnnotatedValue v -> Value (ToT v)
+ Morley.Michelson.Typed.AnnotatedValue: asList :: Fold SomeAnnotatedValue [SomeAnnotatedValue]
+ Morley.Michelson.Typed.AnnotatedValue: asMap :: forall key. (IsoValue key, Ord key) => Fold SomeAnnotatedValue (Map key SomeAnnotatedValue)
+ Morley.Michelson.Typed.AnnotatedValue: castTo :: forall v1 v2. (IsoValue v1, IsoValue v2) => Prism SomeAnnotatedValue SomeAnnotatedValue (AnnotatedValue v1) (AnnotatedValue v2)
+ Morley.Michelson.Typed.AnnotatedValue: data AnnotatedValue v
+ Morley.Michelson.Typed.AnnotatedValue: data SomeAnnotatedValue
+ Morley.Michelson.Typed.AnnotatedValue: field :: FieldAnn -> Traversal' SomeAnnotatedValue SomeAnnotatedValue
+ Morley.Michelson.Typed.AnnotatedValue: fields :: IndexedTraversal' FieldAnn SomeAnnotatedValue SomeAnnotatedValue
+ Morley.Michelson.Typed.AnnotatedValue: getT :: SomeAnnotatedValue -> T
+ Morley.Michelson.Typed.AnnotatedValue: instance Data.Singletons.Internal.SingI (Morley.Michelson.Typed.Haskell.Value.ToT v) => Formatting.Buildable.Buildable (Morley.Michelson.Typed.AnnotatedValue.AnnotatedValue v)
+ Morley.Michelson.Typed.AnnotatedValue: instance Formatting.Buildable.Buildable Morley.Michelson.Typed.AnnotatedValue.SomeAnnotatedValue
+ Morley.Michelson.Typed.AnnotatedValue: instance GHC.Classes.Eq (Morley.Michelson.Typed.AnnotatedValue.AnnotatedValue v)
+ Morley.Michelson.Typed.AnnotatedValue: instance GHC.Classes.Eq Morley.Michelson.Typed.AnnotatedValue.SomeAnnotatedValue
+ Morley.Michelson.Typed.AnnotatedValue: instance GHC.Show.Show (Morley.Michelson.Typed.AnnotatedValue.AnnotatedValue v)
+ Morley.Michelson.Typed.AnnotatedValue: instance GHC.Show.Show Morley.Michelson.Typed.AnnotatedValue.SomeAnnotatedValue
+ Morley.Michelson.Typed.AnnotatedValue: node :: FieldAnn -> Fold SomeAnnotatedValue SomeAnnotatedValue
+ Morley.Michelson.Typed.AnnotatedValue: nodes :: IndexedFold FieldAnn SomeAnnotatedValue SomeAnnotatedValue
+ Morley.Michelson.Typed.AnnotatedValue: value :: IsoValue v => Lens' (AnnotatedValue v) v
+ Morley.Michelson.Typed.AnnotatedValue: variant :: FieldAnn -> Traversal' SomeAnnotatedValue SomeAnnotatedValue
+ Morley.Michelson.Typed.Haskell: isoValue :: (IsoValue a, IsoValue b) => Iso (Value (ToT a)) (Value (ToT b)) a b
+ Morley.Michelson.Typed.Haskell.Value: instance GHC.Classes.Ord k => Control.Lens.At.At (Morley.Michelson.Typed.Haskell.Value.BigMap k v)
+ Morley.Michelson.Typed.Haskell.Value: instance GHC.Classes.Ord k => Control.Lens.At.Ixed (Morley.Michelson.Typed.Haskell.Value.BigMap k v)
+ Morley.Michelson.Typed.Haskell.Value: isoValue :: (IsoValue a, IsoValue b) => Iso (Value (ToT a)) (Value (ToT b)) a b
+ Morley.Michelson.Typed.Value: instance Control.Lens.At.At (Morley.Michelson.Typed.Value.Value' instr ('Morley.Michelson.Typed.T.TBigMap k v))
+ Morley.Michelson.Typed.Value: instance Control.Lens.At.At (Morley.Michelson.Typed.Value.Value' instr ('Morley.Michelson.Typed.T.TMap k v))
+ Morley.Michelson.Typed.Value: instance Control.Lens.At.At (Morley.Michelson.Typed.Value.Value' instr ('Morley.Michelson.Typed.T.TSet a))
+ Morley.Michelson.Typed.Value: instance Control.Lens.At.Ixed (Morley.Michelson.Typed.Value.Value' instr ('Morley.Michelson.Typed.T.TBigMap k v))
+ Morley.Michelson.Typed.Value: instance Control.Lens.At.Ixed (Morley.Michelson.Typed.Value.Value' instr ('Morley.Michelson.Typed.T.TList elem))
+ Morley.Michelson.Typed.Value: instance Control.Lens.At.Ixed (Morley.Michelson.Typed.Value.Value' instr ('Morley.Michelson.Typed.T.TMap k v))
+ Morley.Michelson.Typed.Value: instance Control.Lens.At.Ixed (Morley.Michelson.Typed.Value.Value' instr ('Morley.Michelson.Typed.T.TSet a))
- Morley.Michelson.Typed.Haskell: crDescriptionL :: forall a_a6KQe. Lens' (ConstructorRep a_a6KQe) (Maybe Text)
+ Morley.Michelson.Typed.Haskell: crDescriptionL :: forall a_a6Pns. Lens' (ConstructorRep a_a6Pns) (Maybe Text)
- Morley.Michelson.Typed.Haskell: crFieldsL :: forall a_a6KQe a_a6KRq. Lens (ConstructorRep a_a6KQe) (ConstructorRep a_a6KRq) [FieldRep a_a6KQe] [FieldRep a_a6KRq]
+ Morley.Michelson.Typed.Haskell: crFieldsL :: forall a_a6Pns a_a6PoE. Lens (ConstructorRep a_a6Pns) (ConstructorRep a_a6PoE) [FieldRep a_a6Pns] [FieldRep a_a6PoE]
- Morley.Michelson.Typed.Haskell: crNameL :: forall a_a6KQe. Lens' (ConstructorRep a_a6KQe) Text
+ Morley.Michelson.Typed.Haskell: crNameL :: forall a_a6Pns. Lens' (ConstructorRep a_a6Pns) Text
- Morley.Michelson.Typed.Haskell: frDescriptionL :: forall a_a6KQd. Lens' (FieldRep a_a6KQd) (Maybe Text)
+ Morley.Michelson.Typed.Haskell: frDescriptionL :: forall a_a6Pnr. Lens' (FieldRep a_a6Pnr) (Maybe Text)
- Morley.Michelson.Typed.Haskell: frNameL :: forall a_a6KQd. Lens' (FieldRep a_a6KQd) (Maybe Text)
+ Morley.Michelson.Typed.Haskell: frNameL :: forall a_a6Pnr. Lens' (FieldRep a_a6Pnr) (Maybe Text)
- Morley.Michelson.Typed.Haskell: frTypeRepL :: forall a_a6KQd a_a6KT8. Lens (FieldRep a_a6KQd) (FieldRep a_a6KT8) a_a6KQd a_a6KT8
+ Morley.Michelson.Typed.Haskell: frTypeRepL :: forall a_a6Pnr a_a6Pqm. Lens (FieldRep a_a6Pnr) (FieldRep a_a6Pqm) a_a6Pnr a_a6Pqm
- Morley.Michelson.Typed.Haskell.Doc: crDescriptionL :: forall a_a6KQe. Lens' (ConstructorRep a_a6KQe) (Maybe Text)
+ Morley.Michelson.Typed.Haskell.Doc: crDescriptionL :: forall a_a6Pns. Lens' (ConstructorRep a_a6Pns) (Maybe Text)
- Morley.Michelson.Typed.Haskell.Doc: crFieldsL :: forall a_a6KQe a_a6KRq. Lens (ConstructorRep a_a6KQe) (ConstructorRep a_a6KRq) [FieldRep a_a6KQe] [FieldRep a_a6KRq]
+ Morley.Michelson.Typed.Haskell.Doc: crFieldsL :: forall a_a6Pns a_a6PoE. Lens (ConstructorRep a_a6Pns) (ConstructorRep a_a6PoE) [FieldRep a_a6Pns] [FieldRep a_a6PoE]
- Morley.Michelson.Typed.Haskell.Doc: crNameL :: forall a_a6KQe. Lens' (ConstructorRep a_a6KQe) Text
+ Morley.Michelson.Typed.Haskell.Doc: crNameL :: forall a_a6Pns. Lens' (ConstructorRep a_a6Pns) Text
- Morley.Michelson.Typed.Haskell.Doc: frDescriptionL :: forall a_a6KQd. Lens' (FieldRep a_a6KQd) (Maybe Text)
+ Morley.Michelson.Typed.Haskell.Doc: frDescriptionL :: forall a_a6Pnr. Lens' (FieldRep a_a6Pnr) (Maybe Text)
- Morley.Michelson.Typed.Haskell.Doc: frNameL :: forall a_a6KQd. Lens' (FieldRep a_a6KQd) (Maybe Text)
+ Morley.Michelson.Typed.Haskell.Doc: frNameL :: forall a_a6Pnr. Lens' (FieldRep a_a6Pnr) (Maybe Text)
- Morley.Michelson.Typed.Haskell.Doc: frTypeRepL :: forall a_a6KQd a_a6KT8. Lens (FieldRep a_a6KQd) (FieldRep a_a6KT8) a_a6KQd a_a6KT8
+ Morley.Michelson.Typed.Haskell.Doc: frTypeRepL :: forall a_a6Pnr a_a6Pqm. Lens (FieldRep a_a6Pnr) (FieldRep a_a6Pqm) a_a6Pnr a_a6Pqm

Files

CHANGES.md view
@@ -1,5 +1,20 @@ <!-- Unreleased: append new entries here --> ++1.16.2+======+* [!1045](https://gitlab.com/morley-framework/morley/-/merge_requests/1045)+  + Add optics:+    - `Ixed` and `At` instances for `Value t` and `BigMap k v`.+    - `isoValue`.+    - prisms for `Expression`.+    - lenses for `MichelinePrimAp`.+  + Add `SomeAnnotatedValue` and `AnnotatedValue`.+  + Add `Lift` instance for `Expression`.+* [!1040](https://gitlab.com/morley-framework/morley/-/merge_requests/1040)+  Add missing `FromExpression` conversions+  + `Chest` and `ChestKey` cases were missing in `FromExpression` conversions.+ 1.16.1 ====== * [!1016](https://gitlab.com/morley-framework/morley/-/merge_requests/1016)
README.md view
@@ -64,13 +64,13 @@ Morley-the library is available on [Hackage](https://hackage.haskell.org/package/morley). It consists of the following parts: -- The `Morley.Tezos.*` hierarchy ([`Morley.Tezos.Address`](http://hackage.haskell.org/package/morley/docs/Tezos-Address.html), [`Morley.Tezos.Core`](http://hackage.haskell.org/package/morley/docs/Tezos-Core.html), [`Morley.Tezos.Crypto`](http://hackage.haskell.org/package/morley/docs/Tezos-Crypto.html)) is designed to implement cryptographic primitives, string and byte formats, and any other functionality specific to the Tezos protocol which is required for testing/execution of Michelson contracts but is used not only by Michelson.-- [`Morley.Michelson.Untyped`](http://hackage.haskell.org/package/morley/docs/Michelson-Untyped.html) and [`Morley.Michelson.Typed`](http://hackage.haskell.org/package/morley/docs/Michelson-Typed.html) hierarchies define Haskell data types that assemble a Michelson contract. See [michelsonTypes.md](https://gitlab.com/morley-framework/morley/-/blob/master/code/morley/docs/michelsonTypes.md).-- [`Morley.Michelson.TypeCheck`](http://hackage.haskell.org/package/morley/docs/Michelson-TypeCheck.html): A typechecker that validates Michelson contracts according to the Michelson's typing rules. Essentially, it performs conversion from untyped representation to the typed one. See [morleyTypechecker.md](https://gitlab.com/morley-framework/morley/-/blob/master/code/morley/docs/morleyTypechecker.md).-- [`Morley.Michelson.Interpret`](http://hackage.haskell.org/package/morley/docs/Michelson-Interpret.html): An interpreter for Michelson contracts which doesn't perform any side effects. See [morleyInterpreter.md](https://gitlab.com/morley-framework/morley/-/blob/master/code/morley/docs/morleyInterpreter.md).-- [`Morley.Michelson.Macro`](http://hackage.haskell.org/package/morley/docs/Michelson-Macro.html) Types for macros, syntactic sugar, and other extensions that are described in the next chapter.-- [`Morley.Michelson.Parser`](http://hackage.haskell.org/package/morley/docs/Michelson-Parser.html) A parser to turn a `.tz` or `.mtz` file (`.mtz` is a Michelson contract with Morley extensions) into a Haskell ADT.-- [`Morley.Michelson.Runtime`](http://hackage.haskell.org/package/morley/docs/Michelson-Runtime.html): A high-level interface to Morley functionality, see [morleyRuntime.md](https://gitlab.com/morley-framework/morley/-/blob/master/code/morley/docs/morleyRuntime.md).+- The `Morley.Tezos.*` hierarchy ([`Morley.Tezos.Address`](http://hackage.haskell.org/package/morley/docs/Morley-Tezos-Address.html), [`Morley.Tezos.Core`](http://hackage.haskell.org/package/morley/docs/Morley-Tezos-Core.html), [`Morley.Tezos.Crypto`](http://hackage.haskell.org/package/morley/docs/Morley-Tezos-Crypto.html)) is designed to implement cryptographic primitives, string and byte formats, and any other functionality specific to the Tezos protocol which is required for testing/execution of Michelson contracts but is used not only by Michelson.+- [`Morley.Michelson.Untyped`](http://hackage.haskell.org/package/morley/docs/Morley-Michelson-Untyped.html) and [`Morley.Michelson.Typed`](http://hackage.haskell.org/package/morley/docs/Morley-Michelson-Typed.html) hierarchies define Haskell data types that assemble a Michelson contract. See [michelsonTypes.md](https://gitlab.com/morley-framework/morley/-/blob/master/code/morley/docs/michelsonTypes.md).+- [`Morley.Michelson.TypeCheck`](http://hackage.haskell.org/package/morley/docs/Morley-Michelson-TypeCheck.html): A typechecker that validates Michelson contracts according to the Michelson's typing rules. Essentially, it performs conversion from untyped representation to the typed one. See [morleyTypechecker.md](https://gitlab.com/morley-framework/morley/-/blob/master/code/morley/docs/morleyTypechecker.md).+- [`Morley.Michelson.Interpret`](http://hackage.haskell.org/package/morley/docs/Morley-Michelson-Interpret.html): An interpreter for Michelson contracts which doesn't perform any side effects. See [morleyInterpreter.md](https://gitlab.com/morley-framework/morley/-/blob/master/code/morley/docs/morleyInterpreter.md).+- [`Morley.Michelson.Macro`](http://hackage.haskell.org/package/morley/docs/Morley-Michelson-Macro.html) Types for macros, syntactic sugar, and other extensions that are described in the next chapter.+- [`Morley.Michelson.Parser`](http://hackage.haskell.org/package/morley/docs/Morley-Michelson-Parser.html) A parser to turn a `.tz` or `.mtz` file (`.mtz` is a Michelson contract with Morley extensions) into a Haskell ADT.+- [`Morley.Michelson.Runtime`](http://hackage.haskell.org/package/morley/docs/Morley-Michelson-Runtime.html): A high-level interface to Morley functionality, see [morleyRuntime.md](https://gitlab.com/morley-framework/morley/-/blob/master/code/morley/docs/morleyRuntime.md). - The `Morley.Micheline.*` hierarchy ([`Morley.Micheline.Binary`](http://hackage.haskell.org/package/morley/docs/Morley-Micheline-Binary.html), [`Morley.Micheline.Class`](http://hackage.haskell.org/package/morley/docs/Morley-Micheline-Class.html), [`Morley.Micheline.Expression`](http://hackage.haskell.org/package/morley/docs/Morley-Micheline-Expression.html), [`Morley.Micheline.Json`](http://hackage.haskell.org/package/morley/docs/Morley-Micheline-Json.html)) contains the representation of Micheline `Expression`s, conversion to/from Michelson values,
morley.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           morley-version:        1.16.1+version:        1.16.2 synopsis:       Developer tools for the Michelson Language description:    A library to make writing smart contracts in Michelson — the smart contract language of the Tezos blockchain — pleasant and effective. category:       Language@@ -89,6 +89,7 @@       Morley.Michelson.TypeCheck.Value       Morley.Michelson.Typed       Morley.Michelson.Typed.Aliases+      Morley.Michelson.Typed.AnnotatedValue       Morley.Michelson.Typed.Annotation       Morley.Michelson.Typed.Arith       Morley.Michelson.Typed.Contract
src/Morley/Micheline/Class.hs view
@@ -858,6 +858,8 @@     PrimExpr "bls12_381_g2" [] [] -> pure Untyped.TBls12381G2     PrimExpr "timestamp" [] [] -> pure Untyped.TTimestamp     PrimExpr "address" [] [] -> pure Untyped.TAddress+    PrimExpr "chest" [] [] -> pure Untyped.TChest+    PrimExpr "chest_key" [] [] -> pure Untyped.TChestKey     PrimExpr "never" [] [] -> pure Untyped.TNever     _ -> Left $ FromExpressionError e "Expected a type"     where
src/Morley/Micheline/Expression.hs view
@@ -4,6 +4,8 @@ -- SPDX-License-Identifier: LicenseRef-MIT-TQ -- SPDX-License-Identifier: LicenseRef-MIT-obsidian-systems +{-# LANGUAGE DeriveLift #-}+ -- | Module that defines Expression type, its related types -- and its JSON instance. module Morley.Micheline.Expression@@ -23,12 +25,18 @@   , toAnnSet    -- * Prisms+  , _ExpressionInt+  , _ExpressionString+  , _ExpressionBytes+  , _ExpressionSeq   , _ExpressionPrim   , _AnnotationField   , _AnnotationVariable   , _AnnotationType    -- * Lenses+  , mpaPrimL+  , mpaArgsL   , mpaAnnotsL   ) where @@ -46,6 +54,7 @@ import qualified Data.Text as T (uncons) import Fmt (Buildable(..), pretty, (+|), (|+)) +import Language.Haskell.TH.Lift (Lift) import Morley.Micheline.Json (StringEncode(StringEncode, unStringEncode)) import qualified Morley.Michelson.Untyped as U import Morley.Michelson.Untyped.Annotation@@ -53,10 +62,11 @@   annPrefix, fullAnnSet, minimizeAnnSet, mkAnnotation) import Morley.Tezos.Crypto (encodeBase58Check) import Morley.Util.ByteString (HexJSONByteString(..))+import Morley.Util.Lens (postfixLFields)  newtype MichelinePrimitive = MichelinePrimitive Text   deriving newtype (Eq, Ord, ToJSON, FromJSON)-  deriving stock (Show, Data)+  deriving stock (Show, Data, Lift)  michelsonPrimitive :: Seq Text michelsonPrimitive = Seq.fromList [@@ -113,7 +123,7 @@   | ExpressionBytes ByteString   | ExpressionSeq [Expression]   | ExpressionPrim MichelinePrimAp-  deriving stock (Eq, Show, Data)+  deriving stock (Eq, Show, Data, Lift)  pattern PrimExpr :: Text -> [Expression] -> [Annotation] -> Expression pattern PrimExpr primName args anns =@@ -139,13 +149,13 @@   = AnnotationType TypeAnn   | AnnotationVariable VarAnn   | AnnotationField FieldAnn-  deriving stock (Eq, Show, Data)+  deriving stock (Eq, Show, Data, Lift)  data MichelinePrimAp = MichelinePrimAp   { mpaPrim :: MichelinePrimitive   , mpaArgs :: [Expression]   , mpaAnnots :: [Annotation]-  } deriving stock (Eq, Show, Data)+  } deriving stock (Eq, Show, Data, Lift)  instance FromJSON MichelinePrimAp where   parseJSON = withObject "Prim" $ \v -> MichelinePrimAp@@ -246,4 +256,4 @@  makePrisms ''Expression makePrisms ''Annotation-makeLensesFor [("mpaAnnots", "mpaAnnotsL")] ''MichelinePrimAp+makeLensesWith postfixLFields ''MichelinePrimAp
src/Morley/Michelson/Typed.hs view
@@ -7,6 +7,7 @@   ) where  import Morley.Michelson.Typed.Aliases as Exports+import Morley.Michelson.Typed.AnnotatedValue as Exports (AnnotatedValue(..), SomeAnnotatedValue(..)) import Morley.Michelson.Typed.Annotation as Exports import Morley.Michelson.Typed.Arith as Exports import Morley.Michelson.Typed.Contract as Exports
+ src/Morley/Michelson/Typed/AnnotatedValue.hs view
@@ -0,0 +1,282 @@+-- SPDX-FileCopyrightText: 2022 Tocqueville Group+--+-- SPDX-License-Identifier: LicenseRef-MIT-TQ++module Morley.Michelson.Typed.AnnotatedValue+  ( AnnotatedValue (..)+  , SomeAnnotatedValue(..)+  , getT+  -- * Optics+  , value+  , castTo+  , variant+  , fields+  , field+  , nodes+  , node+  , asList+  , asMap+  ) where++import Control.Lens+import qualified Data.Map as Map+import Data.Singletons (SingI, demote)+import Fmt (Buildable(..), (+|), (|+))++import Morley.Michelson.Typed.Aliases (Value)+import Morley.Michelson.Typed.Annotation (Notes(..))+import Morley.Michelson.Typed.Convert ()+import Morley.Michelson.Typed.Extract (mkUType)+import Morley.Michelson.Typed.Haskell.Value (IsoValue, ToT, fromVal, toVal)+import Morley.Michelson.Typed.T (T)+import Morley.Michelson.Typed.Value+import Morley.Michelson.Untyped (FieldAnn, noAnn)+import Morley.Util.Sing (eqI)++-- $setup+-- >>> import qualified Data.Map as Map+-- >>> import Morley.Michelson.Untyped (noAnn, fieldAnnQ)+-- >>> :m +Morley.Michelson.Typed Morley.Michelson.Text Control.Lens Fmt++data AnnotatedValue v = AnnotatedValue+  { avNotes :: Notes (ToT v)+  , avValue :: Value (ToT v)+  }+  deriving stock (Eq, Show)++instance SingI (ToT v) => Buildable (AnnotatedValue v) where+  build (AnnotatedValue n v) = build v |+ " :: " +| build (mkUType n)++data SomeAnnotatedValue where+  SomeAnnotatedValue :: forall t. SingI t => Notes t -> Value t -> SomeAnnotatedValue++deriving stock instance Show SomeAnnotatedValue++instance Eq SomeAnnotatedValue where+  SomeAnnotatedValue n1 (v1 :: Value t1) == SomeAnnotatedValue n2 (v2 :: Value t2) =+    case eqI @t1 @t2 of+      Nothing -> False+      Just Refl -> n1 == n2 && v1 == v2++instance Buildable SomeAnnotatedValue where+  build (SomeAnnotatedValue n v) = build v |+ " :: " +| build (mkUType n)++getT :: SomeAnnotatedValue -> T+getT (SomeAnnotatedValue _ (_ :: Value t)) = demote @t++----------------------------------------------------------------------------+-- Optics+----------------------------------------------------------------------------++-- | Extract the value out of an annotated value.+value :: IsoValue v => Lens' (AnnotatedValue v) v+value =+  lens+    do fromVal . avValue+    do \av v -> av { avValue = toVal v }++-- | Attempts to cast to the given type.+castTo :: forall v1 v2. (IsoValue v1, IsoValue v2) => Prism SomeAnnotatedValue SomeAnnotatedValue (AnnotatedValue v1) (AnnotatedValue v2)+castTo =+  prism+    do \(AnnotatedValue n v) -> SomeAnnotatedValue n v+    do \sav@(SomeAnnotatedValue n (v :: Value t)) ->+        case eqI @t @(ToT v1) of+          Just Refl -> Right $ AnnotatedValue n v+          Nothing -> Left sav++{- | Matches on a (possibly nested) @or@, and focuses the value if its+field annotation is a match.++Note that field annotations do not have to be unique.+If two @or@ branches have the same field annotation, `variant` will match on either branch.++>>> :{+or = Right (Left 3) :: Either Integer (Either Natural Integer)+notes =+  NTOr noAnn [fieldAnnQ|first|] noAnn+    starNotes+    (NTOr noAnn [fieldAnnQ|second|] [fieldAnnQ|third|] starNotes starNotes)+val = SomeAnnotatedValue notes (toVal or)+:}++>>> val ^? variant [fieldAnnQ|second|] . to pretty+Just "3 :: nat"++>>> val ^? variant [fieldAnnQ|first|] . to pretty+Nothing+-}+variant :: FieldAnn -> Traversal' SomeAnnotatedValue SomeAnnotatedValue+variant fieldAnn (handler :: SomeAnnotatedValue -> (f SomeAnnotatedValue)) = \case+  SomeAnnotatedValue n0 v0 -> go noAnn (n0, v0)+  where+    go :: FieldAnn -> (Notes t, Value t) -> f SomeAnnotatedValue+    go currentFieldAnn (n, v)+      -- If this node does not have a field ann, then recurse.+      | currentFieldAnn == noAnn =+          case (n, v) of+            (NTOr ta fal far nl nr, VOr (Left vl)) -> do+              go fal (nl, vl) <&> \(SomeAnnotatedValue nl' vl') ->+                SomeAnnotatedValue (NTOr ta fal far nl' nr) (VOr (Left vl'))+            (NTOr ta fal far nl nr, VOr (Right vr)) -> do+              go far (nr, vr) <&> \(SomeAnnotatedValue nr' vr') ->+                SomeAnnotatedValue (NTOr ta fal far nl nr') (VOr (Right vr'))+            _ ->+              -- We've reached a leaf.+              pure $ withValueTypeSanity v $ SomeAnnotatedValue n v++      -- We've encountered a node labelled with a field ann, and it's a match.+      | currentFieldAnn == fieldAnn = handler $ withValueTypeSanity v $ SomeAnnotatedValue n v+      -- We've encountered a node labelled with a field ann, but it's not a match.+      | otherwise = pure $ withValueTypeSanity v $ SomeAnnotatedValue n v++{- | Traverses all nodes in a tree of pairs that have a field annotation.+The elements are indexed by their field annotations.++Note that sub-trees are not inspected.+For example, for this type:++> pair+>   (int %storageField1)+>   (pair %storageField2+>     (int %nestedField1)+>     (string %nestedField2)+>   )++'fields' will:++* ignore the top-level node, because it does not have a field annotation.+* traverse the @storageField1@ and @storageField2@ fields.+* ignore @nestedField1@ and @nestedField2@, because they're in a sub-tree of a traversed node.++Note that field annotations do not have to be unique.+If two fields have the same field annotation, both will be indexed/traversed.++>>> :{+pair = (1, 2, 3) :: (Integer, Natural, Integer)+notes =+  NTPair noAnn [fieldAnnQ|first|] noAnn noAnn noAnn+    starNotes+    (NTPair noAnn [fieldAnnQ|second|] [fieldAnnQ|third|] noAnn noAnn starNotes starNotes)+val = SomeAnnotatedValue notes (toVal pair)+:}++>>> mapM_ print $ val ^@.. fields . to pretty+(%first,"1 :: int")+(%second,"2 :: nat")+(%third,"3 :: int")+-}+fields :: IndexedTraversal' FieldAnn SomeAnnotatedValue SomeAnnotatedValue+fields (handler :: p SomeAnnotatedValue (f SomeAnnotatedValue)) = \case+  SomeAnnotatedValue n0 v0 -> go noAnn (n0, v0)+  where+    go :: FieldAnn -> (Notes t, Value t) -> f SomeAnnotatedValue+    go currentFieldAnn (n, v)+      | currentFieldAnn == noAnn =+          case (n, v) of+            (NTPair ta fal far val var nl nr, VPair (vl, vr)) -> do+              savL <- go fal (nl, vl)+              savR <- go far (nr, vr)+              pure $+                case (savL, savR) of+                  (SomeAnnotatedValue nl' vl', SomeAnnotatedValue nr' vr') ->+                    SomeAnnotatedValue (NTPair ta fal far val var nl' nr') (VPair (vl', vr'))+            _ ->+              -- We've reached a leaf.+              pure $ withValueTypeSanity v $ SomeAnnotatedValue n v+      | otherwise =+          indexed handler currentFieldAnn $ withValueTypeSanity v $ SomeAnnotatedValue n v++{- | Looks up a member of a tree of pairs by its field annotation.+Note that sub-trees of nodes with field annotations are not inspected.++Note that field annotations do not have to be unique.+If two fields have the same field annotation, both will be indexed/traversed.++>>> :{+pair = (1, 2, 3) :: (Integer, Natural, Integer)+notes =+  NTPair noAnn [fieldAnnQ|first|] noAnn noAnn noAnn+    starNotes+    (NTPair noAnn [fieldAnnQ|second|] [fieldAnnQ|third|] noAnn noAnn starNotes starNotes)+val = SomeAnnotatedValue notes (toVal pair)+:}++>>> val ^? field [fieldAnnQ|second|] . castTo @Natural . value+Just 2+-}+field :: FieldAnn -> Traversal' SomeAnnotatedValue SomeAnnotatedValue+field fieldAnn = fields . index fieldAnn++{- | Lists all nodes in a tree of pairs.+The elements are indexed by their field annotations.++Note that field annotations do not have to be unique.+If two fields have the same field annotation, both will be indexed.++>>> :{+pair = (1, 2, 3) :: (Integer, Natural, Integer)+notes =+  NTPair noAnn [fieldAnnQ|first|] noAnn noAnn noAnn+    starNotes+    (NTPair noAnn [fieldAnnQ|second|] [fieldAnnQ|third|] noAnn noAnn starNotes starNotes)+val = SomeAnnotatedValue notes (toVal pair)+:}++>>> mapM_ print $ val ^@.. nodes . to pretty+(%first,"1 :: int")+(%,"Pair 2 3 :: pair (nat %second) (int %third)")+(%second,"2 :: nat")+(%third,"3 :: int")+-}+nodes :: IndexedFold FieldAnn SomeAnnotatedValue SomeAnnotatedValue+nodes = ifolding $ \case+  SomeAnnotatedValue n0 v0 -> go (n0, v0)+  where+    go :: (Notes t, Value t) -> [(FieldAnn, SomeAnnotatedValue)]+    go (n, v) = case (n, v) of+      (NTPair _ fal far _ _ nl nr, VPair (vl, vr)) ->+        (fal, withValueTypeSanity vl $ SomeAnnotatedValue nl vl) :+        (far, withValueTypeSanity vr $ SomeAnnotatedValue nr vr) :+        go (nl, vl) <>+        go (nr, vr)+      _ -> []++-- | Looks up nodes in a tree of pairs with the given field annotation.+node :: FieldAnn -> Fold SomeAnnotatedValue SomeAnnotatedValue+node fieldAnn = nodes . index fieldAnn++-- | Casts a 'SomeAnnotatedValue' to a list.+--+-- >>> list = [ [mt|hello|], [mt|world|] ]+-- >>> val = SomeAnnotatedValue starNotes (toVal list)+-- >>> val ^? asList . ix 1 . castTo @MText . value . to pretty+-- Just "world"+asList :: Fold SomeAnnotatedValue [SomeAnnotatedValue]+asList = folding @Maybe \case+  SomeAnnotatedValue (NTList _ xNotes) (VList xs) ->+    Just $ xs <&> \x -> SomeAnnotatedValue xNotes x+  _ -> Nothing++-- | Casts a 'SomeAnnotatedValue' to a map.+--+-- >>> map = Map.fromList @Integer @Bool [(10, False), (20, True)]+-- >>> val = SomeAnnotatedValue starNotes (toVal map)+-- >>> val ^? asMap @Integer . ix 20 . castTo @Bool . value+-- Just True+asMap :: forall key. (IsoValue key, Ord key) => Fold SomeAnnotatedValue (Map key SomeAnnotatedValue)+asMap = folding @Maybe \case+  SomeAnnotatedValue (NTMap _ _ vNotes) (VMap vmap) -> convert vNotes vmap+  SomeAnnotatedValue (NTBigMap _ _ vNotes) (VBigMap _ vmap) -> convert vNotes vmap+  _ -> Nothing+  where+    convert+      :: forall k v. (SingI k, SingI v)+      => Notes v+      -> Map (Value k) (Value v)+      -> Maybe (Map key SomeAnnotatedValue)+    convert vNotes vmap =+      eqI @(ToT key) @k <&> \Refl ->+        vmap+          & Map.mapKeys (\k -> fromVal @key k)+          <&> \v -> SomeAnnotatedValue vNotes v
src/Morley/Michelson/Typed/Haskell/Value.hs view
@@ -8,6 +8,7 @@ module Morley.Michelson.Typed.Haskell.Value   ( -- * Value conversions     IsoValue (..)+  , isoValue   , KnownIsoT   , GIsoValue (GValueType)   , ToT'@@ -38,6 +39,7 @@   , totsAppendLemma   ) where +import Control.Lens import Data.Constraint (Dict(..)) import Data.Data (Data) import Data.Default (Default(..))@@ -98,6 +100,10 @@   ToT' (t :: T) = t   ToT' (t :: Type) = ToT t +-- | An optic witnessing the isomorphism between a michelson type and a haskell type.+isoValue :: (IsoValue a, IsoValue b) => Iso (Value (ToT a)) (Value (ToT b)) a b+isoValue = iso fromVal toVal+ -- Instances ---------------------------------------------------------------------------- @@ -325,6 +331,12 @@   }   deriving stock (Show, Generic, Data)   deriving anyclass (Default, Container)++type instance Index (BigMap k _) = k+type instance IxValue (BigMap _ v) = v+instance Ord k => Ixed (BigMap k v)+instance Ord k => At (BigMap k v) where+  at key handler (BigMap bmId bmMap) = BigMap bmId <$> at key handler bmMap  class ToBigMap m where   type ToBigMapKey m
src/Morley/Michelson/Typed/Value.hs view
@@ -29,6 +29,7 @@   , eqValueExt   ) where +import Control.Lens (At(..), Index, IxValue, Ixed(..)) import Data.Constraint (Dict(..), (\\)) import Data.Singletons (Sing) import Data.Type.Bool (type (&&))@@ -460,3 +461,26 @@  $(deriveGADTNFData ''Operation') $(deriveGADTNFData ''Value')++type instance Index (Value' _ ('TList _)) = Int+type instance IxValue (Value' instr ('TList elem)) = Value' instr elem+instance Ixed (Value' instr ('TList elem)) where+  ix idx handler (VList xs) = VList <$> ix idx handler xs++type instance Index (Value' instr ('TMap k _)) = Value' instr k+type instance IxValue (Value' instr ('TMap _ v)) = Value' instr v+instance Ixed (Value' instr ('TMap k v))+instance At (Value' instr ('TMap k v)) where+  at key handler (VMap vmap) = VMap <$> at key handler vmap++type instance Index (Value' instr ('TBigMap k _)) = Value' instr k+type instance IxValue (Value' instr ('TBigMap _ v)) = Value' instr v+instance Ixed (Value' instr ('TBigMap k v))+instance At (Value' instr ('TBigMap k v)) where+  at key handler (VBigMap bmid bmap) = VBigMap bmid <$> at key handler bmap++type instance Index (Value' instr ('TSet a)) = Value' instr a+type instance IxValue (Value' _ ('TSet _)) = ()+instance Ixed (Value' instr ('TSet a))+instance At (Value' instr ('TSet a)) where+  at key handler (VSet vset) = VSet<$> at key handler vset