indigo 0.1.0.0 → 0.2.0
raw patch · 20 files changed
+109/−94 lines, 20 filesdep +clevelandPVP ok
version bump matches the API change (PVP)
Dependencies added: cleveland
API changes (from Hackage documentation)
- Indigo: --
- Indigo: -- Descriptions will be checked at compile time to make sure that only
- Indigo: -- Documentation structure is not necessarily flat. If some doc item
- Indigo: -- For implementation of the check see <a>FieldDescriptionsValid</a> type
- Indigo: -- Inline right here (default behaviour); 2. Put into definitions
- Indigo: -- Note that we require all doc items with "in definitions" placement to
- Indigo: -- See <a>FieldDescriptions</a> documentation for an example of usage.
- Indigo: -- Touching this type family is costly (<tt>O(N^2)</tt>), don't use it
- Indigo: -- and field value type. Used for error messages.
- Indigo: -- children.
- Indigo: -- consolidates a whole documentation block within it, this block will
- Indigo: -- doc.
- Indigo: -- each such entrypoint should be mentioned eariler than all of its
- Indigo: -- existing constructors and fields are referenced.
- Indigo: -- family.
- Indigo: -- have <a>Eq</a> and <a>Ord</a> instances which comply the following
- Indigo: -- law: if two documentation items describe the same entity or property,
- Indigo: -- oblidged to often instantiate this correctly, it is only useful for
- Indigo: -- often.
- Indigo: -- ones, even root if necessary.
- Indigo: -- referring to indermediate nodes (not leaves) in <tt>or</tt> tree, then
- Indigo: -- section.
- Indigo: -- some utilities.
- Indigo: -- they should be considered equal.
- Indigo: -- type.
- Indigo: -- value, the higher the section with this element will be placed.
- Indigo: -- whenever <tt>TypeDocFieldDescriptions</tt> is not empty.
- Indigo: DEntryPoint :: Text -> SubDoc -> DEntryPoint kind
- Indigo: DEntryPointArg :: Maybe DType -> [ParamBuildingStep] -> Type -> DEntryPointArg
- Indigo: DEntryPointReference :: Text -> Anchor -> DEntryPointReference
- Indigo: NoSuchEntryPoint :: MText -> EntryPointLookupError
- Indigo: ShouldHaveEntryPoints :: a -> ShouldHaveEntryPoints a
- Indigo: [crEntryPoint] :: ContractRef arg -> SomeEntryPointCall arg
- Indigo: [eaEntryPoint] :: EpAddress -> EpName
- Indigo: [unHasEntryPoints] :: ShouldHaveEntryPoints a -> a
- Indigo: class EntryPointsDerivation (deriv :: k) cp where {
- Indigo: class HasEntryPointArg (cp :: k) name arg
- Indigo: class (EntryPointsDerivation ParameterEntryPointsDerivation cp cp, RequireAllUniqueEntryPoints cp) => ParameterHasEntryPoints cp where {
- Indigo: data DEntryPoint kind
- Indigo: data DEntryPointArg
- Indigo: data DEntryPointReference
- Indigo: data EntryPointLookupError
- Indigo: data EntryPointRef (mname :: Maybe Symbol)
- Indigo: data PlainEntryPointsKind
- Indigo: diEntryPointToMarkdown :: HeaderLevel -> DEntryPoint level -> Markdown
- Indigo: documentEntryPoint :: forall kind (epName :: Symbol) param (s :: [Type]) (out :: [Type]). (KnownSymbol epName, DocItem (DEntryPoint kind), TypeHasDoc param, HasAnnotation param, KnownValue param) => ((param & s) :-> out) -> (param & s) :-> out
- Indigo: infix 9 ::->
- Indigo: mkDEntryPointArgSimple :: (KnownValue t, HasAnnotation t, TypeHasDoc t) => DEntryPointArg
- Indigo: newtype ShouldHaveEntryPoints a
- Indigo: parameterEntryPointCall :: forall cp (name :: Symbol). ParameterDeclaresEntryPoints cp => Label name -> EntryPointCall cp (GetEntryPointArg cp name)
- Indigo: parameterEntryPointCallCustom :: forall cp (mname :: Maybe Symbol). ParameterDeclaresEntryPoints cp => EntryPointRef mname -> EntryPointCall cp (GetEntryPointArgCustom cp mname)
- Indigo: parameterEntryPointCallDefault :: ParameterDeclaresEntryPoints cp => EntryPointCall cp (GetDefaultEntryPointArg cp)
- Indigo: parameterEntryPointsToNotes :: ParameterDeclaresEntryPoints cp => ParamNotes (ToT cp)
- Indigo: type DocumentEntryPoints kind a = (Generic a, GDocumentEntryPoints kind Rep a)
- Indigo: type EntryPointCall param arg = EntryPointCallT ToT param ToT arg
- Indigo: type EntryPointKind = (Symbol, Type)
- Indigo: type EntryPointsImpl (inp :: [Type]) (out :: [Type]) (entries :: [EntryPointKind]) = Rec CaseClauseU inp out entries
- Indigo: type ForbidExplicitDefaultEntryPoint cp = Eval LiftM3 UnMaybe :: Exp Constraint -> Type -> Exp Constraint -> Maybe Type -> Constraint -> Type Pure Pure () TError 'Text "Parameter used here must have no explicit \"default\" entrypoint" :$$: 'Text "In parameter type `" :<>: 'ShowType cp :<>: 'Text "`" :: Type -> Exp Constraint -> Type LookupParameterEntryPoint cp DefaultEpName
- Indigo: type GetDefaultEntryPointArg cp = Eval LiftM2 FromMaybe :: Type -> Maybe Type -> Type -> Type Pure cp LookupParameterEntryPoint cp DefaultEpName
- Indigo: type GetEntryPointArg cp (name :: Symbol) = Eval LiftM2 FromMaybe :: Type -> Maybe Type -> Type -> Type TError 'Text "Entrypoint not found: " :<>: 'ShowType name :$$: 'Text "In contract parameter `" :<>: 'ShowType cp :<>: 'Text "`" :: Type -> Type LookupParameterEntryPoint cp name
- Indigo: type HasDefEntryPointArg (cp :: k) defEpName defArg = (defEpName ~ EntryPointRef 'Nothing :: Maybe Symbol, HasEntryPointArg cp defEpName defArg)
- Indigo: type HasEntryPointOfType param (con :: Symbol) exp = (GetEntryPointArgCustom param 'Just con ~ exp, ParameterDeclaresEntryPoints param)
- Indigo: type NoExplicitDefaultEntryPoint cp = Eval LookupParameterEntryPoint cp DefaultEpName ~ 'Nothing :: Maybe Type
- Indigo: type ParameterDeclaresEntryPoints cp = (If CanHaveEntryPoints cp ParameterHasEntryPoints cp (), NiceParameter cp, EntryPointsDerivation GetParameterEpDerivation cp cp)
- Indigo: type RequireAllUniqueEntryPoints cp = RequireAllUniqueEntryPoints' ParameterEntryPointsDerivation cp cp
- Indigo: type SomeEntryPointCall arg = SomeEntryPointCallT ToT arg
- Indigo: useHasEntryPointArg :: HasEntryPointArg cp name arg => name -> (Dict (ParameterScope (ToT arg)), EpName)
- Indigo.Backend.Case: (#=) :: CaseArrow name body clause => Label name -> body -> clause
- Indigo.Lorentz: --
- Indigo.Lorentz: -- Descriptions will be checked at compile time to make sure that only
- Indigo.Lorentz: -- Documentation structure is not necessarily flat. If some doc item
- Indigo.Lorentz: -- For implementation of the check see <a>FieldDescriptionsValid</a> type
- Indigo.Lorentz: -- Inline right here (default behaviour); 2. Put into definitions
- Indigo.Lorentz: -- Note that we require all doc items with "in definitions" placement to
- Indigo.Lorentz: -- See <a>FieldDescriptions</a> documentation for an example of usage.
- Indigo.Lorentz: -- Touching this type family is costly (<tt>O(N^2)</tt>), don't use it
- Indigo.Lorentz: -- and field value type. Used for error messages.
- Indigo.Lorentz: -- children.
- Indigo.Lorentz: -- consolidates a whole documentation block within it, this block will
- Indigo.Lorentz: -- doc.
- Indigo.Lorentz: -- each such entrypoint should be mentioned eariler than all of its
- Indigo.Lorentz: -- existing constructors and fields are referenced.
- Indigo.Lorentz: -- family.
- Indigo.Lorentz: -- have <a>Eq</a> and <a>Ord</a> instances which comply the following
- Indigo.Lorentz: -- law: if two documentation items describe the same entity or property,
- Indigo.Lorentz: -- oblidged to often instantiate this correctly, it is only useful for
- Indigo.Lorentz: -- often.
- Indigo.Lorentz: -- ones, even root if necessary.
- Indigo.Lorentz: -- referring to indermediate nodes (not leaves) in <tt>or</tt> tree, then
- Indigo.Lorentz: -- section.
- Indigo.Lorentz: -- some utilities.
- Indigo.Lorentz: -- they should be considered equal.
- Indigo.Lorentz: -- type.
- Indigo.Lorentz: -- value, the higher the section with this element will be placed.
- Indigo.Lorentz: -- whenever <tt>TypeDocFieldDescriptions</tt> is not empty.
- Indigo.Lorentz: -- | Description of constructors and fields of <tt>a</tt>.
- Indigo.Lorentz: DEntryPoint :: Text -> SubDoc -> DEntryPoint kind
- Indigo.Lorentz: DEntryPointArg :: Maybe DType -> [ParamBuildingStep] -> Type -> DEntryPointArg
- Indigo.Lorentz: DEntryPointReference :: Text -> Anchor -> DEntryPointReference
- Indigo.Lorentz: NoSuchEntryPoint :: MText -> EntryPointLookupError
- Indigo.Lorentz: ShouldHaveEntryPoints :: a -> ShouldHaveEntryPoints a
- Indigo.Lorentz: [crEntryPoint] :: ContractRef arg -> SomeEntryPointCall arg
- Indigo.Lorentz: [eaEntryPoint] :: EpAddress -> EpName
- Indigo.Lorentz: [unHasEntryPoints] :: ShouldHaveEntryPoints a -> a
- Indigo.Lorentz: class EntryPointsDerivation (deriv :: k) cp where {
- Indigo.Lorentz: class HasEntryPointArg (cp :: k) name arg
- Indigo.Lorentz: class (EntryPointsDerivation ParameterEntryPointsDerivation cp cp, RequireAllUniqueEntryPoints cp) => ParameterHasEntryPoints cp where {
- Indigo.Lorentz: data DEntryPoint kind
- Indigo.Lorentz: data DEntryPointArg
- Indigo.Lorentz: data DEntryPointReference
- Indigo.Lorentz: data EntryPointLookupError
- Indigo.Lorentz: data EntryPointRef (mname :: Maybe Symbol)
- Indigo.Lorentz: data PlainEntryPointsKind
- Indigo.Lorentz: diEntryPointToMarkdown :: HeaderLevel -> DEntryPoint level -> Markdown
- Indigo.Lorentz: documentEntryPoint :: forall kind (epName :: Symbol) param (s :: [Type]) (out :: [Type]). (KnownSymbol epName, DocItem (DEntryPoint kind), TypeHasDoc param, HasAnnotation param, KnownValue param) => ((param & s) :-> out) -> (param & s) :-> out
- Indigo.Lorentz: infix 9 ::->
- Indigo.Lorentz: infixl 8 #
- Indigo.Lorentz: infixr 0 :>
- Indigo.Lorentz: infixr 1 %>
- Indigo.Lorentz: infixr 2 &
- Indigo.Lorentz: mkDEntryPointArgSimple :: (KnownValue t, HasAnnotation t, TypeHasDoc t) => DEntryPointArg
- Indigo.Lorentz: newtype ShouldHaveEntryPoints a
- Indigo.Lorentz: parameterEntryPointCall :: forall cp (name :: Symbol). ParameterDeclaresEntryPoints cp => Label name -> EntryPointCall cp (GetEntryPointArg cp name)
- Indigo.Lorentz: parameterEntryPointCallCustom :: forall cp (mname :: Maybe Symbol). ParameterDeclaresEntryPoints cp => EntryPointRef mname -> EntryPointCall cp (GetEntryPointArgCustom cp mname)
- Indigo.Lorentz: parameterEntryPointCallDefault :: ParameterDeclaresEntryPoints cp => EntryPointCall cp (GetDefaultEntryPointArg cp)
- Indigo.Lorentz: parameterEntryPointsToNotes :: ParameterDeclaresEntryPoints cp => ParamNotes (ToT cp)
- Indigo.Lorentz: type DocumentEntryPoints kind a = (Generic a, GDocumentEntryPoints kind Rep a)
- Indigo.Lorentz: type EntryPointCall param arg = EntryPointCallT ToT param ToT arg
- Indigo.Lorentz: type EntryPointKind = (Symbol, Type)
- Indigo.Lorentz: type EntryPointsImpl (inp :: [Type]) (out :: [Type]) (entries :: [EntryPointKind]) = Rec CaseClauseU inp out entries
- Indigo.Lorentz: type ForbidExplicitDefaultEntryPoint cp = Eval LiftM3 UnMaybe :: Exp Constraint -> Type -> Exp Constraint -> Maybe Type -> Constraint -> Type Pure Pure () TError 'Text "Parameter used here must have no explicit \"default\" entrypoint" :$$: 'Text "In parameter type `" :<>: 'ShowType cp :<>: 'Text "`" :: Type -> Exp Constraint -> Type LookupParameterEntryPoint cp DefaultEpName
- Indigo.Lorentz: type GetDefaultEntryPointArg cp = Eval LiftM2 FromMaybe :: Type -> Maybe Type -> Type -> Type Pure cp LookupParameterEntryPoint cp DefaultEpName
- Indigo.Lorentz: type GetEntryPointArg cp (name :: Symbol) = Eval LiftM2 FromMaybe :: Type -> Maybe Type -> Type -> Type TError 'Text "Entrypoint not found: " :<>: 'ShowType name :$$: 'Text "In contract parameter `" :<>: 'ShowType cp :<>: 'Text "`" :: Type -> Type LookupParameterEntryPoint cp name
- Indigo.Lorentz: type HasDefEntryPointArg (cp :: k) defEpName defArg = (defEpName ~ EntryPointRef 'Nothing :: Maybe Symbol, HasEntryPointArg cp defEpName defArg)
- Indigo.Lorentz: type HasEntryPointOfType param (con :: Symbol) exp = (GetEntryPointArgCustom param 'Just con ~ exp, ParameterDeclaresEntryPoints param)
- Indigo.Lorentz: type NoExplicitDefaultEntryPoint cp = Eval LookupParameterEntryPoint cp DefaultEpName ~ 'Nothing :: Maybe Type
- Indigo.Lorentz: type ParameterDeclaresEntryPoints cp = (If CanHaveEntryPoints cp ParameterHasEntryPoints cp (), NiceParameter cp, EntryPointsDerivation GetParameterEpDerivation cp cp)
- Indigo.Lorentz: type RequireAllUniqueEntryPoints cp = RequireAllUniqueEntryPoints' ParameterEntryPointsDerivation cp cp
- Indigo.Lorentz: type SomeEntryPointCall arg = SomeEntryPointCallT ToT arg
- Indigo.Lorentz: useHasEntryPointArg :: HasEntryPointArg cp name arg => name -> (Dict (ParameterScope (ToT arg)), EpName)
+ Indigo: (#=) :: (CaseArrow name (Var x -> IndigoAnyOut x ret) (IndigoCaseClauseL ret ('CaseClauseParam ctor ('OneField x))), ScopeCodeGen retBr, ret ~ RetExprs retBr, RetOutStack ret ~ RetOutStack retBr, KnownValue x, name ~ AppendSymbol "c" ctor) => Label name -> (Var x -> IndigoM retBr) -> IndigoMCaseClauseL IndigoM ret ('CaseClauseParam ctor ('OneField x))
+ Indigo: DEntrypoint :: Text -> SubDoc -> DEntrypoint kind
+ Indigo: DEntrypointArg :: Maybe DType -> [ParamBuildingStep] -> Type -> DEntrypointArg
+ Indigo: DEntrypointExample :: Value t -> DEntrypointExample
+ Indigo: DEntrypointReference :: Text -> Anchor -> DEntrypointReference
+ Indigo: DocElem :: d -> Maybe SubDoc -> DocElem d
+ Indigo: DocItemPos :: (Natural, Text) -> DocItemPos
+ Indigo: DocSection :: (NonEmpty $ DocElem d) -> DocSection
+ Indigo: NoSuchEntrypoint :: MText -> EntrypointLookupError
+ Indigo: ShouldHaveEntrypoints :: a -> ShouldHaveEntrypoints a
+ Indigo: [DocItemRefInlined] :: DocItemId -> DocItemRef 'DocItemInlined 'True
+ Indigo: [crEntrypoint] :: ContractRef arg -> SomeEntrypointCall arg
+ Indigo: [deItem] :: DocElem d -> d
+ Indigo: [deSub] :: DocElem d -> Maybe SubDoc
+ Indigo: [eaEntrypoint] :: EpAddress -> EpName
+ Indigo: [unHasEntrypoints] :: ShouldHaveEntrypoints a -> a
+ Indigo: class EntrypointsDerivation (deriv :: k) cp where {
+ Indigo: class HasAnnotation a
+ Indigo: class HasEntrypointArg (cp :: k) name arg
+ Indigo: class (EntrypointsDerivation ParameterEntrypointsDerivation cp cp, RequireAllUniqueEntrypoints cp) => ParameterHasEntrypoints cp where {
+ Indigo: cstr :: forall (n :: Nat). KnownNat n => [Natural] -> CstrDepth
+ Indigo: customGeneric :: String -> GenericStrategy -> Q [Dec]
+ Indigo: data DEntrypoint kind
+ Indigo: data DEntrypointArg
+ Indigo: data DEntrypointExample
+ Indigo: data DEntrypointReference
+ Indigo: data DocElem d
+ Indigo: data DocSection
+ Indigo: data EntrypointLookupError
+ Indigo: data EntrypointRef (mname :: Maybe Symbol)
+ Indigo: data EpdWithRoot (r :: Symbol) (epd :: k)
+ Indigo: data PlainEntrypointsKind
+ Indigo: diEntrypointToMarkdown :: HeaderLevel -> DEntrypoint level -> Markdown
+ Indigo: docItemPos :: DocItem d => Natural
+ Indigo: docItemToToc :: DocItem d => HeaderLevel -> d -> Markdown
+ Indigo: documentEntrypoint :: forall kind (epName :: Symbol) param (s :: [Type]) (out :: [Type]). (KnownSymbol epName, DocItem (DEntrypoint kind), TypeHasDoc param, HasAnnotation param, KnownValue param) => ((param & s) :-> out) -> (param & s) :-> out
+ Indigo: errorToValNumeric :: IsError e => ErrorTagMap -> e -> (forall (t :: T). ErrorScope t => Value t -> r) -> r
+ Indigo: expressionToScriptExpr :: Expression -> ByteString
+ Indigo: fld :: forall (n :: Nat). KnownNat n => Natural
+ Indigo: haskellAddNewtypeField :: Text -> TypeDocHaskellRep a -> TypeDocHaskellRep a
+ Indigo: leftBalanced :: GenericStrategy
+ Indigo: leftComb :: GenericStrategy
+ Indigo: mdTocFromRef :: (DocItem d, DocItemReferenced d ~ 'True) => HeaderLevel -> Markdown -> d -> Markdown
+ Indigo: mkDEntrypointArgSimple :: (KnownValue t, HasAnnotation t, TypeHasDoc t) => DEntrypointArg
+ Indigo: mkDEntrypointExample :: NiceParameter a => a -> DEntrypointExample
+ Indigo: newtype DocItemPos
+ Indigo: newtype ShouldHaveEntrypoints a
+ Indigo: oneMutez :: Mutez
+ Indigo: parameterEntrypointCall :: forall cp (name :: Symbol). ParameterDeclaresEntrypoints cp => Label name -> EntrypointCall cp (GetEntrypointArg cp name)
+ Indigo: parameterEntrypointCallCustom :: forall cp (mname :: Maybe Symbol). ParameterDeclaresEntrypoints cp => EntrypointRef mname -> EntrypointCall cp (GetEntrypointArgCustom cp mname)
+ Indigo: parameterEntrypointCallDefault :: ParameterDeclaresEntrypoints cp => EntrypointCall cp (GetDefaultEntrypointArg cp)
+ Indigo: parameterEntrypointsToNotes :: ParameterDeclaresEntrypoints cp => ParamNotes (ToT cp)
+ Indigo: rightBalanced :: GenericStrategy
+ Indigo: rightComb :: GenericStrategy
+ Indigo: type DocItemReferenced d = 'False;
+ Indigo: type DocumentEntrypoints kind a = (Generic a, GDocumentEntrypoints kind Rep a)
+ Indigo: type EntrypointCall param arg = EntrypointCallT ToT param ToT arg
+ Indigo: type EntrypointKind = (Symbol, Type)
+ Indigo: type EntrypointsImpl (inp :: [Type]) (out :: [Type]) (entries :: [EntrypointKind]) = Rec CaseClauseU inp out entries
+ Indigo: type ErrorScope (t :: T) = (Typeable t, ConstantScope t)
+ Indigo: type ForbidExplicitDefaultEntrypoint cp = Eval LiftM3 UnMaybe :: Exp Constraint -> Type -> Exp Constraint -> Maybe Type -> Constraint -> Type Pure Pure () TError 'Text "Parameter used here must have no explicit \"default\" entrypoint" :$$: 'Text "In parameter type `" :<>: 'ShowType cp :<>: 'Text "`" :: Type -> Exp Constraint -> Type LookupParameterEntrypoint cp DefaultEpName
+ Indigo: type GetDefaultEntrypointArg cp = Eval LiftM2 FromMaybe :: Type -> Maybe Type -> Type -> Type Pure cp LookupParameterEntrypoint cp DefaultEpName
+ Indigo: type GetEntrypointArg cp (name :: Symbol) = Eval LiftM2 FromMaybe :: Type -> Maybe Type -> Type -> Type TError 'Text "Entrypoint not found: " :<>: 'ShowType name :$$: 'Text "In contract parameter `" :<>: 'ShowType cp :<>: 'Text "`" :: Type -> Type LookupParameterEntrypoint cp name
+ Indigo: type HasDefEntrypointArg (cp :: k) defEpName defArg = (defEpName ~ EntrypointRef 'Nothing :: Maybe Symbol, HasEntrypointArg cp defEpName defArg)
+ Indigo: type HasEntrypointOfType param (con :: Symbol) exp = (GetEntrypointArgCustom param 'Just con ~ exp, ParameterDeclaresEntrypoints param)
+ Indigo: type NoExplicitDefaultEntrypoint cp = Eval LookupParameterEntrypoint cp DefaultEpName ~ 'Nothing :: Maybe Type
+ Indigo: type ParameterDeclaresEntrypoints cp = (If CanHaveEntrypoints cp ParameterHasEntrypoints cp (), NiceParameter cp, EntrypointsDerivation GetParameterEpDerivation cp cp)
+ Indigo: type RequireAllUniqueEntrypoints cp = RequireAllUniqueEntrypoints' ParameterEntrypointsDerivation cp cp
+ Indigo: type SomeEntrypointCall arg = SomeEntrypointCallT ToT arg
+ Indigo: useHasEntrypointArg :: HasEntrypointArg cp name arg => name -> (Dict (ParameterScope (ToT arg)), EpName)
+ Indigo: valueToScriptExpr :: NicePackedValue t => t -> ByteString
+ Indigo: withDepths :: [CstrDepth] -> GenericStrategy
+ Indigo: zeroMutez :: Mutez
+ Indigo.Frontend.Language: (#=) :: (CaseArrow name (Var x -> IndigoAnyOut x ret) (IndigoCaseClauseL ret ('CaseClauseParam ctor ('OneField x))), ScopeCodeGen retBr, ret ~ RetExprs retBr, RetOutStack ret ~ RetOutStack retBr, KnownValue x, name ~ AppendSymbol "c" ctor) => Label name -> (Var x -> IndigoM retBr) -> IndigoMCaseClauseL IndigoM ret ('CaseClauseParam ctor ('OneField x))
+ Indigo.Lorentz: DEntrypoint :: Text -> SubDoc -> DEntrypoint kind
+ Indigo.Lorentz: DEntrypointArg :: Maybe DType -> [ParamBuildingStep] -> Type -> DEntrypointArg
+ Indigo.Lorentz: DEntrypointExample :: Value t -> DEntrypointExample
+ Indigo.Lorentz: DEntrypointReference :: Text -> Anchor -> DEntrypointReference
+ Indigo.Lorentz: DocElem :: d -> Maybe SubDoc -> DocElem d
+ Indigo.Lorentz: DocItemPos :: (Natural, Text) -> DocItemPos
+ Indigo.Lorentz: DocSection :: (NonEmpty $ DocElem d) -> DocSection
+ Indigo.Lorentz: NoSuchEntrypoint :: MText -> EntrypointLookupError
+ Indigo.Lorentz: ShouldHaveEntrypoints :: a -> ShouldHaveEntrypoints a
+ Indigo.Lorentz: [DocItemRefInlined] :: DocItemId -> DocItemRef 'DocItemInlined 'True
+ Indigo.Lorentz: [crEntrypoint] :: ContractRef arg -> SomeEntrypointCall arg
+ Indigo.Lorentz: [deItem] :: DocElem d -> d
+ Indigo.Lorentz: [deSub] :: DocElem d -> Maybe SubDoc
+ Indigo.Lorentz: [eaEntrypoint] :: EpAddress -> EpName
+ Indigo.Lorentz: [unHasEntrypoints] :: ShouldHaveEntrypoints a -> a
+ Indigo.Lorentz: class EntrypointsDerivation (deriv :: k) cp where {
+ Indigo.Lorentz: class HasAnnotation a
+ Indigo.Lorentz: class HasEntrypointArg (cp :: k) name arg
+ Indigo.Lorentz: class (EntrypointsDerivation ParameterEntrypointsDerivation cp cp, RequireAllUniqueEntrypoints cp) => ParameterHasEntrypoints cp where {
+ Indigo.Lorentz: cstr :: forall (n :: Nat). KnownNat n => [Natural] -> CstrDepth
+ Indigo.Lorentz: customGeneric :: String -> GenericStrategy -> Q [Dec]
+ Indigo.Lorentz: data DEntrypoint kind
+ Indigo.Lorentz: data DEntrypointArg
+ Indigo.Lorentz: data DEntrypointExample
+ Indigo.Lorentz: data DEntrypointReference
+ Indigo.Lorentz: data DocElem d
+ Indigo.Lorentz: data DocSection
+ Indigo.Lorentz: data EntrypointLookupError
+ Indigo.Lorentz: data EntrypointRef (mname :: Maybe Symbol)
+ Indigo.Lorentz: data EpdWithRoot (r :: Symbol) (epd :: k)
+ Indigo.Lorentz: data PlainEntrypointsKind
+ Indigo.Lorentz: diEntrypointToMarkdown :: HeaderLevel -> DEntrypoint level -> Markdown
+ Indigo.Lorentz: docItemPos :: DocItem d => Natural
+ Indigo.Lorentz: docItemToToc :: DocItem d => HeaderLevel -> d -> Markdown
+ Indigo.Lorentz: documentEntrypoint :: forall kind (epName :: Symbol) param (s :: [Type]) (out :: [Type]). (KnownSymbol epName, DocItem (DEntrypoint kind), TypeHasDoc param, HasAnnotation param, KnownValue param) => ((param & s) :-> out) -> (param & s) :-> out
+ Indigo.Lorentz: errorToValNumeric :: IsError e => ErrorTagMap -> e -> (forall (t :: T). ErrorScope t => Value t -> r) -> r
+ Indigo.Lorentz: expressionToScriptExpr :: Expression -> ByteString
+ Indigo.Lorentz: fld :: forall (n :: Nat). KnownNat n => Natural
+ Indigo.Lorentz: haskellAddNewtypeField :: Text -> TypeDocHaskellRep a -> TypeDocHaskellRep a
+ Indigo.Lorentz: leftBalanced :: GenericStrategy
+ Indigo.Lorentz: leftComb :: GenericStrategy
+ Indigo.Lorentz: mdTocFromRef :: (DocItem d, DocItemReferenced d ~ 'True) => HeaderLevel -> Markdown -> d -> Markdown
+ Indigo.Lorentz: mkDEntrypointArgSimple :: (KnownValue t, HasAnnotation t, TypeHasDoc t) => DEntrypointArg
+ Indigo.Lorentz: mkDEntrypointExample :: NiceParameter a => a -> DEntrypointExample
+ Indigo.Lorentz: newtype DocItemPos
+ Indigo.Lorentz: newtype ShouldHaveEntrypoints a
+ Indigo.Lorentz: oneMutez :: Mutez
+ Indigo.Lorentz: parameterEntrypointCall :: forall cp (name :: Symbol). ParameterDeclaresEntrypoints cp => Label name -> EntrypointCall cp (GetEntrypointArg cp name)
+ Indigo.Lorentz: parameterEntrypointCallCustom :: forall cp (mname :: Maybe Symbol). ParameterDeclaresEntrypoints cp => EntrypointRef mname -> EntrypointCall cp (GetEntrypointArgCustom cp mname)
+ Indigo.Lorentz: parameterEntrypointCallDefault :: ParameterDeclaresEntrypoints cp => EntrypointCall cp (GetDefaultEntrypointArg cp)
+ Indigo.Lorentz: parameterEntrypointsToNotes :: ParameterDeclaresEntrypoints cp => ParamNotes (ToT cp)
+ Indigo.Lorentz: rightBalanced :: GenericStrategy
+ Indigo.Lorentz: rightComb :: GenericStrategy
+ Indigo.Lorentz: type DocItemReferenced d = 'False;
+ Indigo.Lorentz: type DocumentEntrypoints kind a = (Generic a, GDocumentEntrypoints kind Rep a)
+ Indigo.Lorentz: type EntrypointCall param arg = EntrypointCallT ToT param ToT arg
+ Indigo.Lorentz: type EntrypointKind = (Symbol, Type)
+ Indigo.Lorentz: type EntrypointsImpl (inp :: [Type]) (out :: [Type]) (entries :: [EntrypointKind]) = Rec CaseClauseU inp out entries
+ Indigo.Lorentz: type ErrorScope (t :: T) = (Typeable t, ConstantScope t)
+ Indigo.Lorentz: type ForbidExplicitDefaultEntrypoint cp = Eval LiftM3 UnMaybe :: Exp Constraint -> Type -> Exp Constraint -> Maybe Type -> Constraint -> Type Pure Pure () TError 'Text "Parameter used here must have no explicit \"default\" entrypoint" :$$: 'Text "In parameter type `" :<>: 'ShowType cp :<>: 'Text "`" :: Type -> Exp Constraint -> Type LookupParameterEntrypoint cp DefaultEpName
+ Indigo.Lorentz: type GetDefaultEntrypointArg cp = Eval LiftM2 FromMaybe :: Type -> Maybe Type -> Type -> Type Pure cp LookupParameterEntrypoint cp DefaultEpName
+ Indigo.Lorentz: type GetEntrypointArg cp (name :: Symbol) = Eval LiftM2 FromMaybe :: Type -> Maybe Type -> Type -> Type TError 'Text "Entrypoint not found: " :<>: 'ShowType name :$$: 'Text "In contract parameter `" :<>: 'ShowType cp :<>: 'Text "`" :: Type -> Type LookupParameterEntrypoint cp name
+ Indigo.Lorentz: type HasDefEntrypointArg (cp :: k) defEpName defArg = (defEpName ~ EntrypointRef 'Nothing :: Maybe Symbol, HasEntrypointArg cp defEpName defArg)
+ Indigo.Lorentz: type HasEntrypointOfType param (con :: Symbol) exp = (GetEntrypointArgCustom param 'Just con ~ exp, ParameterDeclaresEntrypoints param)
+ Indigo.Lorentz: type NoExplicitDefaultEntrypoint cp = Eval LookupParameterEntrypoint cp DefaultEpName ~ 'Nothing :: Maybe Type
+ Indigo.Lorentz: type ParameterDeclaresEntrypoints cp = (If CanHaveEntrypoints cp ParameterHasEntrypoints cp (), NiceParameter cp, EntrypointsDerivation GetParameterEpDerivation cp cp)
+ Indigo.Lorentz: type RequireAllUniqueEntrypoints cp = RequireAllUniqueEntrypoints' ParameterEntrypointsDerivation cp cp
+ Indigo.Lorentz: type SomeEntrypointCall arg = SomeEntrypointCallT ToT arg
+ Indigo.Lorentz: useHasEntrypointArg :: HasEntrypointArg cp name arg => name -> (Dict (ParameterScope (ToT arg)), EpName)
+ Indigo.Lorentz: valueToScriptExpr :: NicePackedValue t => t -> ByteString
+ Indigo.Lorentz: withDepths :: [CstrDepth] -> GenericStrategy
+ Indigo.Lorentz: zeroMutez :: Mutez
- Indigo: ArgumentUnpackFailed :: EntryPointLookupError
+ Indigo: ArgumentUnpackFailed :: EntrypointLookupError
- Indigo: ContractRef :: Address -> SomeEntryPointCall arg -> ContractRef arg
+ Indigo: ContractRef :: Address -> SomeEntrypointCall arg -> ContractRef arg
- Indigo: UParamUnsafe :: (MText, ByteString) -> UParam (entries :: [EntryPointKind])
+ Indigo: UParamUnsafe :: (MText, ByteString) -> UParam (entries :: [EntrypointKind])
- Indigo: [CallDefault] :: EntryPointRef ('Nothing :: Maybe Symbol)
+ Indigo: [CallDefault] :: EntrypointRef ('Nothing :: Maybe Symbol)
- Indigo: [Call] :: forall (name :: Symbol). NiceEntryPointName name => EntryPointRef ('Just name)
+ Indigo: [Call] :: forall (name :: Symbol). NiceEntrypointName name => EntrypointRef ('Just name)
- Indigo: [Contract] :: (NiceParameterFull p, NoExplicitDefaultEntryPoint p, ToTAddress p addr, ToT addr ~ ToT Address, IsExpr exAddr addr) => exAddr -> Expr (Maybe (ContractRef p))
+ Indigo: [Contract] :: (NiceParameterFull p, NoExplicitDefaultEntrypoint p, ToTAddress p addr, ToT addr ~ ToT Address, IsExpr exAddr addr) => exAddr -> Expr (Maybe (ContractRef p))
- Indigo: [DocItemNoRef] :: DocItemRef 'DocItemInlined
+ Indigo: [DocItemNoRef] :: DocItemRef 'DocItemInlined 'False
- Indigo: [DocItemRef] :: DocItemId -> DocItemRef 'DocItemInDefinitions
+ Indigo: [DocItemRef] :: DocItemId -> DocItemRef 'DocItemInDefinitions 'True
- Indigo: [Self] :: (NiceParameterFull p, NoExplicitDefaultEntryPoint p) => Expr (ContractRef p)
+ Indigo: [Self] :: (NiceParameterFull p, NoExplicitDefaultEntrypoint p) => Expr (ContractRef p)
- Indigo: [depName] :: DEntryPoint kind -> Text
+ Indigo: [depName] :: DEntrypoint kind -> Text
- Indigo: [depSub] :: DEntryPoint kind -> SubDoc
+ Indigo: [depSub] :: DEntrypoint kind -> SubDoc
- Indigo: [epaArg] :: DEntryPointArg -> Maybe DType
+ Indigo: [epaArg] :: DEntrypointArg -> Maybe DType
- Indigo: [epaBuilding] :: DEntryPointArg -> [ParamBuildingStep]
+ Indigo: [epaBuilding] :: DEntrypointArg -> [ParamBuildingStep]
- Indigo: [epaType] :: DEntryPointArg -> Type
+ Indigo: [epaType] :: DEntrypointArg -> Type
- Indigo: callingDefTAddress :: NiceParameterFull cp => TAddress cp -> ContractRef (GetDefaultEntryPointArg cp)
+ Indigo: callingDefTAddress :: NiceParameterFull cp => TAddress cp -> ContractRef (GetDefaultEntrypointArg cp)
- Indigo: callingTAddress :: forall cp (mname :: Maybe Symbol). NiceParameterFull cp => TAddress cp -> EntryPointRef mname -> ContractRef (GetEntryPointArgCustom cp mname)
+ Indigo: callingTAddress :: forall cp (mname :: Maybe Symbol). NiceParameterFull cp => TAddress cp -> EntrypointRef mname -> ContractRef (GetEntrypointArgCustom cp mname)
- Indigo: caseUParam :: forall (entries :: [EntryPointKind]) (inp :: [Type]) (out :: [Type]). (CaseUParam entries, RequireUniqueEntryPoints entries) => Rec (CaseClauseU inp out) entries -> UParamFallback inp out -> (UParam entries : inp) :-> out
+ Indigo: caseUParam :: forall (entries :: [EntrypointKind]) (inp :: [Type]) (out :: [Type]). (CaseUParam entries, RequireUniqueEntrypoints entries) => Rec (CaseClauseU inp out) entries -> UParamFallback inp out -> (UParam entries : inp) :-> out
- Indigo: caseUParamT :: forall (entries :: [EntryPointKind]) (inp :: [Type]) (out :: [Type]) clauses. (clauses ~ Rec (CaseClauseU inp out) entries, RecFromTuple clauses, CaseUParam entries) => IsoRecTuple clauses -> UParamFallback inp out -> (UParam entries : inp) :-> out
+ Indigo: caseUParamT :: forall (entries :: [EntrypointKind]) (inp :: [Type]) (out :: [Type]) clauses. (clauses ~ Rec (CaseClauseU inp out) entries, RecFromTuple clauses, CaseUParam entries) => IsoRecTuple clauses -> UParamFallback inp out -> (UParam entries : inp) :-> out
- Indigo: class CaseUParam (entries :: [EntryPointKind])
+ Indigo: class CaseUParam (entries :: [EntrypointKind])
- Indigo: class (Typeable d, DOrd d, KnownNat DocItemPosition d) => DocItem d where {
+ Indigo: class (Typeable d, DOrd d) => DocItem d where {
- Indigo: class UnpackUParam (c :: Type -> Constraint) (entries :: [EntryPointKind])
+ Indigo: class UnpackUParam (c :: Type -> Constraint) (entries :: [EntrypointKind])
- Indigo: constructDEpArg :: (TypeHasDoc arg, HasAnnotation arg, KnownValue arg) => DEntryPointArg
+ Indigo: constructDEpArg :: (TypeHasDoc arg, HasAnnotation arg, KnownValue arg) => DEntrypointArg
- Indigo: contract :: (NiceParameterFull p, NoExplicitDefaultEntryPoint p, ToTAddress p addr, ToT addr ~ ToT Address, exAddr :~> addr) => exAddr -> Expr (Maybe (ContractRef p))
+ Indigo: contract :: (NiceParameterFull p, NoExplicitDefaultEntrypoint p, ToTAddress p addr, ToT addr ~ ToT Address, exAddr :~> addr) => exAddr -> Expr (Maybe (ContractRef p))
- Indigo: contractCalling :: forall cp epRef epArg addr exAddr. (HasEntryPointArg cp epRef epArg, ToTAddress cp addr, ToT addr ~ ToT Address, exAddr :~> addr, KnownValue epArg) => epRef -> exAddr -> IndigoM (Var (Maybe (ContractRef epArg)))
+ Indigo: contractCalling :: forall cp epRef epArg addr exAddr. (HasEntrypointArg cp epRef epArg, ToTAddress cp addr, ToT addr ~ ToT Address, exAddr :~> addr, KnownValue epArg) => epRef -> exAddr -> IndigoM (Var (Maybe (ContractRef epArg)))
- Indigo: data (param :: k) ::-> (store :: k1)
+ Indigo: data (k2 :: k) ~> (v :: k1)
- Indigo: data DocItemRef (p :: DocItemPlacementKind)
+ Indigo: data DocItemRef (p :: DocItemPlacementKind) (r :: DocItemReferencedKind)
- Indigo: deriveCtorFieldDoc :: DeriveCtorFieldDoc con cf => DEntryPointArg
+ Indigo: deriveCtorFieldDoc :: DeriveCtorFieldDoc con cf => DEntrypointArg
- Indigo: docItemRef :: DocItem d => d -> DocItemRef (DocItemPlacement d)
+ Indigo: docItemRef :: DocItem d => d -> DocItemRef (DocItemPlacement d) (DocItemReferenced d)
- Indigo: emptyDEpArg :: DEntryPointArg
+ Indigo: emptyDEpArg :: DEntrypointArg
- Indigo: entryCase :: forall dt entryPointKind guard ret clauses. (CaseCommonF (IndigoMCaseClauseL IndigoM) dt guard ret clauses, RecFromTuple clauses, DocumentEntryPoints entryPointKind dt) => Proxy entryPointKind -> guard -> IsoRecTuple clauses -> IndigoM (RetVars ret)
+ Indigo: entryCase :: forall dt entrypointKind guard ret clauses. (CaseCommonF (IndigoMCaseClauseL IndigoM) dt guard ret clauses, RecFromTuple clauses, DocumentEntrypoints entrypointKind dt) => Proxy entrypointKind -> guard -> IsoRecTuple clauses -> IndigoM (RetVars ret)
- Indigo: entryCaseRec :: forall dt entryPointKind guard ret clauses. (CaseCommonF (IndigoMCaseClauseL IndigoM) dt guard ret clauses, DocumentEntryPoints entryPointKind dt) => Proxy entryPointKind -> guard -> clauses -> IndigoM (RetVars ret)
+ Indigo: entryCaseRec :: forall dt entrypointKind guard ret clauses. (CaseCommonF (IndigoMCaseClauseL IndigoM) dt guard ret clauses, DocumentEntrypoints entrypointKind dt) => Proxy entrypointKind -> guard -> clauses -> IndigoM (RetVars ret)
- Indigo: entryCaseSimple :: forall cp guard ret clauses. (CaseCommonF (IndigoMCaseClauseL IndigoM) cp guard ret clauses, RecFromTuple clauses, DocumentEntryPoints PlainEntryPointsKind cp, NiceParameterFull cp, RequireFlatParamEps cp) => guard -> IsoRecTuple clauses -> IndigoM (RetVars ret)
+ Indigo: entryCaseSimple :: forall cp guard ret clauses. (CaseCommonF (IndigoMCaseClauseL IndigoM) cp guard ret clauses, RecFromTuple clauses, DocumentEntrypoints PlainEntrypointsKind cp, NiceParameterFull cp, RequireFlatParamEps cp) => guard -> IsoRecTuple clauses -> IndigoM (RetVars ret)
- Indigo: entryCaseSimple_ :: forall cp (out :: [Type]) (inp :: [Type]). (InstrCaseC cp, RMap (CaseClauses cp), DocumentEntryPoints PlainEntryPointsKind cp, NiceParameterFull cp, RequireFlatParamEps cp) => Rec (CaseClauseL inp out) (CaseClauses cp) -> (cp & inp) :-> out
+ Indigo: entryCaseSimple_ :: forall cp (out :: [Type]) (inp :: [Type]). (InstrCaseC cp, RMap (CaseClauses cp), DocumentEntrypoints PlainEntrypointsKind cp, NiceParameterFull cp, RequireFlatParamEps cp) => Rec (CaseClauseL inp out) (CaseClauses cp) -> (cp & inp) :-> out
- Indigo: epdCall :: forall (name :: Symbol). (EntryPointsDerivation deriv cp, ParameterScope (ToT cp)) => Label name -> EpConstructionRes (ToT cp) (Eval (EpdLookupEntryPoint deriv cp name))
+ Indigo: epdCall :: forall (name :: Symbol). (EntrypointsDerivation deriv cp, ParameterScope (ToT cp)) => Label name -> EpConstructionRes (ToT cp) (Eval (EpdLookupEntrypoint deriv cp name))
- Indigo: epdDescs :: EntryPointsDerivation deriv cp => Rec EpCallingDesc (EpdAllEntryPoints deriv cp)
+ Indigo: epdDescs :: EntrypointsDerivation deriv cp => Rec EpCallingDesc (EpdAllEntrypoints deriv cp)
- Indigo: epdNotes :: EntryPointsDerivation deriv cp => Notes (ToT cp)
+ Indigo: epdNotes :: EntrypointsDerivation deriv cp => (Notes (ToT cp), RootAnn)
- Indigo: eprName :: forall (mname :: Maybe Symbol). EntryPointRef mname -> EpName
+ Indigo: eprName :: forall (mname :: Maybe Symbol). EntrypointRef mname -> EpName
- Indigo: infixr 0 //->
+ Indigo: infixr 0 #=
- Indigo: infixr 1 %>
+ Indigo: infixr 1 =<<
- Indigo: mkUParam :: forall a (name :: Symbol) (entries :: [EntryPointKind]). (NicePackedValue a, LookupEntryPoint name entries ~ a, RequireUniqueEntryPoints entries) => Label name -> a -> UParam entries
+ Indigo: mkUParam :: forall a (name :: Symbol) (entries :: [EntrypointKind]). (NicePackedValue a, LookupEntrypoint name entries ~ a, RequireUniqueEntrypoints entries) => Label name -> a -> UParam entries
- Indigo: newtype UParam (entries :: [EntryPointKind])
+ Indigo: newtype UParam (entries :: [EntrypointKind])
- Indigo: self :: (NiceParameterFull p, NoExplicitDefaultEntryPoint p) => Expr (ContractRef p)
+ Indigo: self :: (NiceParameterFull p, NoExplicitDefaultEntrypoint p) => Expr (ContractRef p)
- Indigo: selfCalling :: forall p mname. (NiceParameterFull p, KnownValue (GetEntryPointArgCustom p mname)) => EntryPointRef mname -> IndigoM (Var (ContractRef (GetEntryPointArgCustom p mname)))
+ Indigo: selfCalling :: forall p mname. (NiceParameterFull p, KnownValue (GetEntrypointArgCustom p mname)) => EntrypointRef mname -> IndigoM (Var (ContractRef (GetEntrypointArgCustom p mname)))
- Indigo: sepcCallRootChecked :: (NiceParameter cp, ForbidExplicitDefaultEntryPoint cp) => SomeEntryPointCall cp
+ Indigo: sepcCallRootChecked :: (NiceParameter cp, ForbidExplicitDefaultEntrypoint cp) => SomeEntrypointCall cp
- Indigo: type NiceParameterFull cp = (Typeable cp, ParameterDeclaresEntryPoints cp)
+ Indigo: type NiceParameterFull cp = (Typeable cp, ParameterDeclaresEntrypoints cp)
- Indigo: type NiceStorage a = (KnownValue a, ProperStorageBetterErrors ToT a)
+ Indigo: type NiceStorage a = (HasAnnotation a, KnownValue a, ProperStorageBetterErrors ToT a)
- Indigo: type Traversal s t a b = forall (f :: Type -> Type). Applicative f => a -> f b -> s -> f t
+ Indigo: type a & (b :: [Type]) = a : b
- Indigo: unpackUParam :: UnpackUParam c entries => UParam entries -> Either EntryPointLookupError (MText, ConstrainedSome c)
+ Indigo: unpackUParam :: UnpackUParam c entries => UParam entries -> Either EntrypointLookupError (MText, ConstrainedSome c)
- Indigo: unwrapUParam :: forall (entries :: [EntryPointKind]) (s :: [Type]). (UParam entries : s) :-> ((MText, ByteString) : s)
+ Indigo: unwrapUParam :: forall (entries :: [EntrypointKind]) (s :: [Type]). (UParam entries : s) :-> ((MText, ByteString) : s)
- Indigo.Backend: contractCalling :: forall cp inp epRef epArg addr exAddr. (HasEntryPointArg cp epRef epArg, ToTAddress cp addr, ToT addr ~ ToT Address, IsExpr exAddr addr, KnownValue epArg) => epRef -> exAddr -> IndigoState inp (Maybe (ContractRef epArg) & inp) (Var (Maybe (ContractRef epArg)))
+ Indigo.Backend: contractCalling :: forall cp inp epRef epArg addr exAddr. (HasEntrypointArg cp epRef epArg, ToTAddress cp addr, ToT addr ~ ToT Address, IsExpr exAddr addr, KnownValue epArg) => epRef -> exAddr -> IndigoState inp (Maybe (ContractRef epArg) & inp) (Var (Maybe (ContractRef epArg)))
- Indigo.Backend: fromLorentzFun1 :: (KnownValue ret_a37mY, IsExpr ex_a37mV a_a37mW) => (:->) ((&) a_a37mW s_a37mX) ((&) ret_a37mY s_a37mX) -> ex_a37mV -> IndigoState s_a37mX ((&) ret_a37mY s_a37mX) (Var ret_a37mY)
+ Indigo.Backend: fromLorentzFun1 :: (KnownValue ret_a2S1k, IsExpr ex_a2S1h a_a2S1i) => (:->) ((&) a_a2S1i s_a2S1j) ((&) ret_a2S1k s_a2S1j) -> ex_a2S1h -> IndigoState s_a2S1j ((&) ret_a2S1k s_a2S1j) (Var ret_a2S1k)
- Indigo.Backend: fromLorentzFun1Void :: IsExpr ex_a37nm a_a37nn => (:->) ((&) a_a37nn s_a37no) s_a37no -> ex_a37nm -> IndigoState s_a37no s_a37no ()
+ Indigo.Backend: fromLorentzFun1Void :: IsExpr ex_a2S1I a_a2S1J => (:->) ((&) a_a2S1J s_a2S1K) s_a2S1K -> ex_a2S1I -> IndigoState s_a2S1K s_a2S1K ()
- Indigo.Backend: fromLorentzFun2 :: (KnownValue ret_a37n7, IsExpr ex_a37n2 a_a37n4, IsExpr ex_a37n3 a_a37n5) => (:->) ((&) a_a37n4 ((&) a_a37n5 s_a37n6)) ((&) ret_a37n7 s_a37n6) -> ex_a37n2 -> ex_a37n3 -> IndigoState s_a37n6 ((&) ret_a37n7 s_a37n6) (Var ret_a37n7)
+ Indigo.Backend: fromLorentzFun2 :: (KnownValue ret_a2S1t, IsExpr ex_a2S1o a_a2S1q, IsExpr ex_a2S1p a_a2S1r) => (:->) ((&) a_a2S1q ((&) a_a2S1r s_a2S1s)) ((&) ret_a2S1t s_a2S1s) -> ex_a2S1o -> ex_a2S1p -> IndigoState s_a2S1s ((&) ret_a2S1t s_a2S1s) (Var ret_a2S1t)
- Indigo.Backend: fromLorentzFun2Void :: (IsExpr ex_a37nt a_a37nv, IsExpr ex_a37nu a_a37nw) => (:->) ((&) a_a37nv ((&) a_a37nw s_a37nx)) s_a37nx -> ex_a37nt -> ex_a37nu -> IndigoState s_a37nx s_a37nx ()
+ Indigo.Backend: fromLorentzFun2Void :: (IsExpr ex_a2S1P a_a2S1R, IsExpr ex_a2S1Q a_a2S1S) => (:->) ((&) a_a2S1R ((&) a_a2S1S s_a2S1T)) s_a2S1T -> ex_a2S1P -> ex_a2S1Q -> IndigoState s_a2S1T s_a2S1T ()
- Indigo.Backend: fromLorentzFun3 :: (KnownValue ret_a37ni, IsExpr ex_a37nb a_a37ne, IsExpr ex_a37nc a_a37nf, IsExpr ex_a37nd a_a37ng) => (:->) ((&) a_a37ne ((&) a_a37nf ((&) a_a37ng s_a37nh))) ((&) ret_a37ni s_a37nh) -> ex_a37nb -> ex_a37nc -> ex_a37nd -> IndigoState s_a37nh ((&) ret_a37ni s_a37nh) (Var ret_a37ni)
+ Indigo.Backend: fromLorentzFun3 :: (KnownValue ret_a2S1E, IsExpr ex_a2S1x a_a2S1A, IsExpr ex_a2S1y a_a2S1B, IsExpr ex_a2S1z a_a2S1C) => (:->) ((&) a_a2S1A ((&) a_a2S1B ((&) a_a2S1C s_a2S1D))) ((&) ret_a2S1E s_a2S1D) -> ex_a2S1x -> ex_a2S1y -> ex_a2S1z -> IndigoState s_a2S1D ((&) ret_a2S1E s_a2S1D) (Var ret_a2S1E)
- Indigo.Backend: fromLorentzFun3Void :: (IsExpr ex_a37nC a_a37nF, IsExpr ex_a37nD a_a37nG, IsExpr ex_a37nE a_a37nH) => (:->) ((&) a_a37nF ((&) a_a37nG ((&) a_a37nH s_a37nI))) s_a37nI -> ex_a37nC -> ex_a37nD -> ex_a37nE -> IndigoState s_a37nI s_a37nI ()
+ Indigo.Backend: fromLorentzFun3Void :: (IsExpr ex_a2S1Y a_a2S21, IsExpr ex_a2S1Z a_a2S22, IsExpr ex_a2S20 a_a2S23) => (:->) ((&) a_a2S21 ((&) a_a2S22 ((&) a_a2S23 s_a2S24))) s_a2S24 -> ex_a2S1Y -> ex_a2S1Z -> ex_a2S20 -> IndigoState s_a2S24 s_a2S24 ()
- Indigo.Backend: selfCalling :: forall p inp mname. (NiceParameterFull p, KnownValue (GetEntryPointArgCustom p mname)) => EntryPointRef mname -> IndigoState inp (ContractRef (GetEntryPointArgCustom p mname) & inp) (Var (ContractRef (GetEntryPointArgCustom p mname)))
+ Indigo.Backend: selfCalling :: forall p inp mname. (NiceParameterFull p, KnownValue (GetEntrypointArgCustom p mname)) => EntrypointRef mname -> IndigoState inp (ContractRef (GetEntrypointArgCustom p mname) & inp) (Var (ContractRef (GetEntrypointArgCustom p mname)))
- Indigo.Backend.Case: entryCaseRec :: forall dt entryPointKind guard inp ret clauses. (CaseCommon dt guard ret clauses, DocumentEntryPoints entryPointKind dt) => Proxy entryPointKind -> guard -> clauses -> IndigoState inp (RetOutStack ret ++ inp) (RetVars ret)
+ Indigo.Backend.Case: entryCaseRec :: forall dt entrypointKind guard inp ret clauses. (CaseCommon dt guard ret clauses, DocumentEntrypoints entrypointKind dt) => Proxy entrypointKind -> guard -> clauses -> IndigoState inp (RetOutStack ret ++ inp) (RetVars ret)
- Indigo.Backend.Case: entryCaseSimpleRec :: forall cp guard inp ret clauses. (CaseCommon cp guard ret clauses, DocumentEntryPoints PlainEntryPointsKind cp, NiceParameterFull cp, RequireFlatParamEps cp) => guard -> clauses -> IndigoState inp (RetOutStack ret ++ inp) (RetVars ret)
+ Indigo.Backend.Case: entryCaseSimpleRec :: forall cp guard inp ret clauses. (CaseCommon cp guard ret clauses, DocumentEntrypoints PlainEntrypointsKind cp, NiceParameterFull cp, RequireFlatParamEps cp) => guard -> clauses -> IndigoState inp (RetOutStack ret ++ inp) (RetVars ret)
- Indigo.Backend.Prelude: infixr 0 ?:
+ Indigo.Backend.Prelude: infixr 0 $!
- Indigo.Backend.Prelude: type family Element t
+ Indigo.Backend.Prelude: type family OneItem x;
- Indigo.Frontend.Language: contractCalling :: forall cp epRef epArg addr exAddr. (HasEntryPointArg cp epRef epArg, ToTAddress cp addr, ToT addr ~ ToT Address, exAddr :~> addr, KnownValue epArg) => epRef -> exAddr -> IndigoM (Var (Maybe (ContractRef epArg)))
+ Indigo.Frontend.Language: contractCalling :: forall cp epRef epArg addr exAddr. (HasEntrypointArg cp epRef epArg, ToTAddress cp addr, ToT addr ~ ToT Address, exAddr :~> addr, KnownValue epArg) => epRef -> exAddr -> IndigoM (Var (Maybe (ContractRef epArg)))
- Indigo.Frontend.Language: entryCase :: forall dt entryPointKind guard ret clauses. (CaseCommonF (IndigoMCaseClauseL IndigoM) dt guard ret clauses, RecFromTuple clauses, DocumentEntryPoints entryPointKind dt) => Proxy entryPointKind -> guard -> IsoRecTuple clauses -> IndigoM (RetVars ret)
+ Indigo.Frontend.Language: entryCase :: forall dt entrypointKind guard ret clauses. (CaseCommonF (IndigoMCaseClauseL IndigoM) dt guard ret clauses, RecFromTuple clauses, DocumentEntrypoints entrypointKind dt) => Proxy entrypointKind -> guard -> IsoRecTuple clauses -> IndigoM (RetVars ret)
- Indigo.Frontend.Language: entryCaseRec :: forall dt entryPointKind guard ret clauses. (CaseCommonF (IndigoMCaseClauseL IndigoM) dt guard ret clauses, DocumentEntryPoints entryPointKind dt) => Proxy entryPointKind -> guard -> clauses -> IndigoM (RetVars ret)
+ Indigo.Frontend.Language: entryCaseRec :: forall dt entrypointKind guard ret clauses. (CaseCommonF (IndigoMCaseClauseL IndigoM) dt guard ret clauses, DocumentEntrypoints entrypointKind dt) => Proxy entrypointKind -> guard -> clauses -> IndigoM (RetVars ret)
- Indigo.Frontend.Language: entryCaseSimple :: forall cp guard ret clauses. (CaseCommonF (IndigoMCaseClauseL IndigoM) cp guard ret clauses, RecFromTuple clauses, DocumentEntryPoints PlainEntryPointsKind cp, NiceParameterFull cp, RequireFlatParamEps cp) => guard -> IsoRecTuple clauses -> IndigoM (RetVars ret)
+ Indigo.Frontend.Language: entryCaseSimple :: forall cp guard ret clauses. (CaseCommonF (IndigoMCaseClauseL IndigoM) cp guard ret clauses, RecFromTuple clauses, DocumentEntrypoints PlainEntrypointsKind cp, NiceParameterFull cp, RequireFlatParamEps cp) => guard -> IsoRecTuple clauses -> IndigoM (RetVars ret)
- Indigo.Frontend.Language: infixr 0 //->
+ Indigo.Frontend.Language: infixr 0 #=
- Indigo.Frontend.Language: selfCalling :: forall p mname. (NiceParameterFull p, KnownValue (GetEntryPointArgCustom p mname)) => EntryPointRef mname -> IndigoM (Var (ContractRef (GetEntryPointArgCustom p mname)))
+ Indigo.Frontend.Language: selfCalling :: forall p mname. (NiceParameterFull p, KnownValue (GetEntrypointArgCustom p mname)) => EntrypointRef mname -> IndigoM (Var (ContractRef (GetEntrypointArgCustom p mname)))
- Indigo.Frontend.Statement: [ContractCalling] :: (HasEntryPointArg cp epRef epArg, ToTAddress cp addr, ToT addr ~ ToT Address, exAddr :~> addr, KnownValue epArg) => Proxy cp -> epRef -> exAddr -> StatementF freer (Var (Maybe (ContractRef epArg)))
+ Indigo.Frontend.Statement: [ContractCalling] :: (HasEntrypointArg cp epRef epArg, ToTAddress cp addr, ToT addr ~ ToT Address, exAddr :~> addr, KnownValue epArg) => Proxy cp -> epRef -> exAddr -> StatementF freer (Var (Maybe (ContractRef epArg)))
- Indigo.Frontend.Statement: [EntryCaseSimple] :: (CaseCommonF (IndigoMCaseClauseL freer) cp guard ret clauses, DocumentEntryPoints PlainEntryPointsKind cp, NiceParameterFull cp, RequireFlatParamEps cp) => guard -> clauses -> StatementF freer (RetVars ret)
+ Indigo.Frontend.Statement: [EntryCaseSimple] :: (CaseCommonF (IndigoMCaseClauseL freer) cp guard ret clauses, DocumentEntrypoints PlainEntrypointsKind cp, NiceParameterFull cp, RequireFlatParamEps cp) => guard -> clauses -> StatementF freer (RetVars ret)
- Indigo.Frontend.Statement: [EntryCase] :: (CaseCommonF (IndigoMCaseClauseL freer) dt guard ret clauses, DocumentEntryPoints entryPointKind dt) => Proxy entryPointKind -> guard -> clauses -> StatementF freer (RetVars ret)
+ Indigo.Frontend.Statement: [EntryCase] :: (CaseCommonF (IndigoMCaseClauseL freer) dt guard ret clauses, DocumentEntrypoints entrypointKind dt) => Proxy entrypointKind -> guard -> clauses -> StatementF freer (RetVars ret)
- Indigo.Internal.Expr.Symbolic: contract :: (NiceParameterFull p, NoExplicitDefaultEntryPoint p, ToTAddress p addr, ToT addr ~ ToT Address, exAddr :~> addr) => exAddr -> Expr (Maybe (ContractRef p))
+ Indigo.Internal.Expr.Symbolic: contract :: (NiceParameterFull p, NoExplicitDefaultEntrypoint p, ToTAddress p addr, ToT addr ~ ToT Address, exAddr :~> addr) => exAddr -> Expr (Maybe (ContractRef p))
- Indigo.Internal.Expr.Symbolic: self :: (NiceParameterFull p, NoExplicitDefaultEntryPoint p) => Expr (ContractRef p)
+ Indigo.Internal.Expr.Symbolic: self :: (NiceParameterFull p, NoExplicitDefaultEntrypoint p) => Expr (ContractRef p)
- Indigo.Internal.Expr.Types: [Contract] :: (NiceParameterFull p, NoExplicitDefaultEntryPoint p, ToTAddress p addr, ToT addr ~ ToT Address, IsExpr exAddr addr) => exAddr -> Expr (Maybe (ContractRef p))
+ Indigo.Internal.Expr.Types: [Contract] :: (NiceParameterFull p, NoExplicitDefaultEntrypoint p, ToTAddress p addr, ToT addr ~ ToT Address, IsExpr exAddr addr) => exAddr -> Expr (Maybe (ContractRef p))
- Indigo.Internal.Expr.Types: [Self] :: (NiceParameterFull p, NoExplicitDefaultEntryPoint p) => Expr (ContractRef p)
+ Indigo.Internal.Expr.Types: [Self] :: (NiceParameterFull p, NoExplicitDefaultEntrypoint p) => Expr (ContractRef p)
- Indigo.Lorentz: ArgumentUnpackFailed :: EntryPointLookupError
+ Indigo.Lorentz: ArgumentUnpackFailed :: EntrypointLookupError
- Indigo.Lorentz: ContractRef :: Address -> SomeEntryPointCall arg -> ContractRef arg
+ Indigo.Lorentz: ContractRef :: Address -> SomeEntrypointCall arg -> ContractRef arg
- Indigo.Lorentz: UParamUnsafe :: (MText, ByteString) -> UParam (entries :: [EntryPointKind])
+ Indigo.Lorentz: UParamUnsafe :: (MText, ByteString) -> UParam (entries :: [EntrypointKind])
- Indigo.Lorentz: [CallDefault] :: EntryPointRef ('Nothing :: Maybe Symbol)
+ Indigo.Lorentz: [CallDefault] :: EntrypointRef ('Nothing :: Maybe Symbol)
- Indigo.Lorentz: [Call] :: forall (name :: Symbol). NiceEntryPointName name => EntryPointRef ('Just name)
+ Indigo.Lorentz: [Call] :: forall (name :: Symbol). NiceEntrypointName name => EntrypointRef ('Just name)
- Indigo.Lorentz: [DocItemNoRef] :: DocItemRef 'DocItemInlined
+ Indigo.Lorentz: [DocItemNoRef] :: DocItemRef 'DocItemInlined 'False
- Indigo.Lorentz: [DocItemRef] :: DocItemId -> DocItemRef 'DocItemInDefinitions
+ Indigo.Lorentz: [DocItemRef] :: DocItemId -> DocItemRef 'DocItemInDefinitions 'True
- Indigo.Lorentz: [depName] :: DEntryPoint kind -> Text
+ Indigo.Lorentz: [depName] :: DEntrypoint kind -> Text
- Indigo.Lorentz: [depSub] :: DEntryPoint kind -> SubDoc
+ Indigo.Lorentz: [depSub] :: DEntrypoint kind -> SubDoc
- Indigo.Lorentz: [epaArg] :: DEntryPointArg -> Maybe DType
+ Indigo.Lorentz: [epaArg] :: DEntrypointArg -> Maybe DType
- Indigo.Lorentz: [epaBuilding] :: DEntryPointArg -> [ParamBuildingStep]
+ Indigo.Lorentz: [epaBuilding] :: DEntrypointArg -> [ParamBuildingStep]
- Indigo.Lorentz: [epaType] :: DEntryPointArg -> Type
+ Indigo.Lorentz: [epaType] :: DEntrypointArg -> Type
- Indigo.Lorentz: callingDefTAddress :: NiceParameterFull cp => TAddress cp -> ContractRef (GetDefaultEntryPointArg cp)
+ Indigo.Lorentz: callingDefTAddress :: NiceParameterFull cp => TAddress cp -> ContractRef (GetDefaultEntrypointArg cp)
- Indigo.Lorentz: callingTAddress :: forall cp (mname :: Maybe Symbol). NiceParameterFull cp => TAddress cp -> EntryPointRef mname -> ContractRef (GetEntryPointArgCustom cp mname)
+ Indigo.Lorentz: callingTAddress :: forall cp (mname :: Maybe Symbol). NiceParameterFull cp => TAddress cp -> EntrypointRef mname -> ContractRef (GetEntrypointArgCustom cp mname)
- Indigo.Lorentz: caseUParam :: forall (entries :: [EntryPointKind]) (inp :: [Type]) (out :: [Type]). (CaseUParam entries, RequireUniqueEntryPoints entries) => Rec (CaseClauseU inp out) entries -> UParamFallback inp out -> (UParam entries : inp) :-> out
+ Indigo.Lorentz: caseUParam :: forall (entries :: [EntrypointKind]) (inp :: [Type]) (out :: [Type]). (CaseUParam entries, RequireUniqueEntrypoints entries) => Rec (CaseClauseU inp out) entries -> UParamFallback inp out -> (UParam entries : inp) :-> out
- Indigo.Lorentz: caseUParamT :: forall (entries :: [EntryPointKind]) (inp :: [Type]) (out :: [Type]) clauses. (clauses ~ Rec (CaseClauseU inp out) entries, RecFromTuple clauses, CaseUParam entries) => IsoRecTuple clauses -> UParamFallback inp out -> (UParam entries : inp) :-> out
+ Indigo.Lorentz: caseUParamT :: forall (entries :: [EntrypointKind]) (inp :: [Type]) (out :: [Type]) clauses. (clauses ~ Rec (CaseClauseU inp out) entries, RecFromTuple clauses, CaseUParam entries) => IsoRecTuple clauses -> UParamFallback inp out -> (UParam entries : inp) :-> out
- Indigo.Lorentz: class CaseUParam (entries :: [EntryPointKind])
+ Indigo.Lorentz: class CaseUParam (entries :: [EntrypointKind])
- Indigo.Lorentz: class (Typeable d, DOrd d, KnownNat DocItemPosition d) => DocItem d where {
+ Indigo.Lorentz: class (Typeable d, DOrd d) => DocItem d where {
- Indigo.Lorentz: class UnpackUParam (c :: Type -> Constraint) (entries :: [EntryPointKind])
+ Indigo.Lorentz: class UnpackUParam (c :: Type -> Constraint) (entries :: [EntrypointKind])
- Indigo.Lorentz: constructDEpArg :: (TypeHasDoc arg, HasAnnotation arg, KnownValue arg) => DEntryPointArg
+ Indigo.Lorentz: constructDEpArg :: (TypeHasDoc arg, HasAnnotation arg, KnownValue arg) => DEntrypointArg
- Indigo.Lorentz: data (param :: k) ::-> (store :: k1)
+ Indigo.Lorentz: data (k2 :: k) ~> (v :: k1)
- Indigo.Lorentz: data DocItemRef (p :: DocItemPlacementKind)
+ Indigo.Lorentz: data DocItemRef (p :: DocItemPlacementKind) (r :: DocItemReferencedKind)
- Indigo.Lorentz: deriveCtorFieldDoc :: DeriveCtorFieldDoc con cf => DEntryPointArg
+ Indigo.Lorentz: deriveCtorFieldDoc :: DeriveCtorFieldDoc con cf => DEntrypointArg
- Indigo.Lorentz: docItemRef :: DocItem d => d -> DocItemRef (DocItemPlacement d)
+ Indigo.Lorentz: docItemRef :: DocItem d => d -> DocItemRef (DocItemPlacement d) (DocItemReferenced d)
- Indigo.Lorentz: emptyDEpArg :: DEntryPointArg
+ Indigo.Lorentz: emptyDEpArg :: DEntrypointArg
- Indigo.Lorentz: entryCaseSimple_ :: forall cp (out :: [Type]) (inp :: [Type]). (InstrCaseC cp, RMap (CaseClauses cp), DocumentEntryPoints PlainEntryPointsKind cp, NiceParameterFull cp, RequireFlatParamEps cp) => Rec (CaseClauseL inp out) (CaseClauses cp) -> (cp & inp) :-> out
+ Indigo.Lorentz: entryCaseSimple_ :: forall cp (out :: [Type]) (inp :: [Type]). (InstrCaseC cp, RMap (CaseClauses cp), DocumentEntrypoints PlainEntrypointsKind cp, NiceParameterFull cp, RequireFlatParamEps cp) => Rec (CaseClauseL inp out) (CaseClauses cp) -> (cp & inp) :-> out
- Indigo.Lorentz: epdCall :: forall (name :: Symbol). (EntryPointsDerivation deriv cp, ParameterScope (ToT cp)) => Label name -> EpConstructionRes (ToT cp) (Eval (EpdLookupEntryPoint deriv cp name))
+ Indigo.Lorentz: epdCall :: forall (name :: Symbol). (EntrypointsDerivation deriv cp, ParameterScope (ToT cp)) => Label name -> EpConstructionRes (ToT cp) (Eval (EpdLookupEntrypoint deriv cp name))
- Indigo.Lorentz: epdDescs :: EntryPointsDerivation deriv cp => Rec EpCallingDesc (EpdAllEntryPoints deriv cp)
+ Indigo.Lorentz: epdDescs :: EntrypointsDerivation deriv cp => Rec EpCallingDesc (EpdAllEntrypoints deriv cp)
- Indigo.Lorentz: epdNotes :: EntryPointsDerivation deriv cp => Notes (ToT cp)
+ Indigo.Lorentz: epdNotes :: EntrypointsDerivation deriv cp => (Notes (ToT cp), RootAnn)
- Indigo.Lorentz: eprName :: forall (mname :: Maybe Symbol). EntryPointRef mname -> EpName
+ Indigo.Lorentz: eprName :: forall (mname :: Maybe Symbol). EntrypointRef mname -> EpName
- Indigo.Lorentz: mkUParam :: forall a (name :: Symbol) (entries :: [EntryPointKind]). (NicePackedValue a, LookupEntryPoint name entries ~ a, RequireUniqueEntryPoints entries) => Label name -> a -> UParam entries
+ Indigo.Lorentz: mkUParam :: forall a (name :: Symbol) (entries :: [EntrypointKind]). (NicePackedValue a, LookupEntrypoint name entries ~ a, RequireUniqueEntrypoints entries) => Label name -> a -> UParam entries
- Indigo.Lorentz: newtype UParam (entries :: [EntryPointKind])
+ Indigo.Lorentz: newtype UParam (entries :: [EntrypointKind])
- Indigo.Lorentz: sepcCallRootChecked :: (NiceParameter cp, ForbidExplicitDefaultEntryPoint cp) => SomeEntryPointCall cp
+ Indigo.Lorentz: sepcCallRootChecked :: (NiceParameter cp, ForbidExplicitDefaultEntrypoint cp) => SomeEntrypointCall cp
- Indigo.Lorentz: type (name :: Symbol) :? a = NamedF Maybe a name
+ Indigo.Lorentz: type (n :: Symbol) ?: (a :: k) = '(n, a)
- Indigo.Lorentz: type NiceParameterFull cp = (Typeable cp, ParameterDeclaresEntryPoints cp)
+ Indigo.Lorentz: type NiceParameterFull cp = (Typeable cp, ParameterDeclaresEntrypoints cp)
- Indigo.Lorentz: type NiceStorage a = (KnownValue a, ProperStorageBetterErrors ToT a)
+ Indigo.Lorentz: type NiceStorage a = (HasAnnotation a, KnownValue a, ProperStorageBetterErrors ToT a)
- Indigo.Lorentz: type family TypeDocFieldDescriptions a :: FieldDescriptions
+ Indigo.Lorentz: type family ShowUStoreField (marker :: UStoreMarkerType) v :: ErrorMessage
- Indigo.Lorentz: unpackUParam :: UnpackUParam c entries => UParam entries -> Either EntryPointLookupError (MText, ConstrainedSome c)
+ Indigo.Lorentz: unpackUParam :: UnpackUParam c entries => UParam entries -> Either EntrypointLookupError (MText, ConstrainedSome c)
- Indigo.Lorentz: unwrapUParam :: forall (entries :: [EntryPointKind]) (s :: [Type]). (UParam entries : s) :-> ((MText, ByteString) : s)
+ Indigo.Lorentz: unwrapUParam :: forall (entries :: [EntrypointKind]) (s :: [Type]). (UParam entries : s) :-> ((MText, ByteString) : s)
- Indigo.Prelude: type family Element t
+ Indigo.Prelude: type family OneItem x;
Files
- CHANGES.md +5/−0
- README.md +3/−3
- indigo.cabal +3/−2
- src/Indigo/Backend.hs +7/−7
- src/Indigo/Backend/Case.hs +6/−12
- src/Indigo/Frontend/Language.hs +36/−15
- src/Indigo/Frontend/Statement.hs +5/−5
- src/Indigo/Internal/Expr/Symbolic.hs +5/−5
- src/Indigo/Internal/Expr/Types.hs +2/−2
- src/Indigo/Internal/State.hs +2/−2
- src/Indigo/Lorentz.hs +4/−3
- test/Main.hs +1/−1
- test/Test/Code/Decomposition.hs +3/−4
- test/Test/Code/Examples.hs +9/−15
- test/Test/Code/Lambda.hs +3/−3
- test/Test/Decomposition.hs +3/−2
- test/Test/Examples.hs +3/−4
- test/Test/Expr.hs +8/−7
- test/Test/Lambda.hs +1/−1
- test/Test/Lookup.hs +0/−1
CHANGES.md view
@@ -1,3 +1,8 @@+0.2.0+=====+* [!542](https://gitlab.com/morley-framework/morley/-/merge_requests/542)+ Use `#=` as a synonym for `//->`.+ 0.1.0.0 =======
README.md view
@@ -9,7 +9,7 @@ It is built on top of `Lorentz`, which in turn is built on top of `Morley`, a dialect that is a superset of vanilla Michelson. If you are interested more in the relationships between these projects you can-start by taking a look at [Morley's README](../../README.md).+start by taking a look at [the repo on GitLab](https://gitlab.com/morley-framework/morley). ## Overall idea @@ -30,6 +30,6 @@ ## Tutorial and documentation -Indigo has a tutorial that you can find [here](tutorial/).+Indigo has a tutorial that you can find at [indigo-lang.gitlab.io](https://indigo-lang.gitlab.io/). -In addition, as for the other Morley projects, it has Haddock documentation.+In addition, as for the other Morley projects, it has [Haddock documentation](https://hackage.haskell.org/package/indigo).
indigo.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 89d2d9515cfb2c4865221da490f19007abfc84bf0545ecf6319d2c748bb5f52a+-- hash: 4ddca34d74587bae4cd69ff4a36aa20d8c7ae38da4031d1669a7d7a9d5b53a53 name: indigo-version: 0.1.0.0+version: 0.2.0 synopsis: Convenient imperative eDSL over Lorentz. description: Syntax and implementation of Indigo eDSL. category: Language@@ -111,6 +111,7 @@ build-depends: HUnit , base >=4.7 && <5+ , cleveland , containers , fmt , hedgehog
src/Indigo/Backend.hs view
@@ -58,8 +58,8 @@ import Indigo.Internal import Indigo.Lorentz import qualified Lorentz.Doc as L-import qualified Lorentz.EntryPoints.Doc as L (finalizeParamCallingDoc)-import Lorentz.EntryPoints.Helpers (RequireSumType)+import qualified Lorentz.Entrypoints.Doc as L (finalizeParamCallingDoc)+import Lorentz.Entrypoints.Helpers (RequireSumType) import qualified Lorentz.Instr as L import qualified Michelson.Typed as MT import Util.Type (type (++))@@ -158,18 +158,18 @@ selfCalling :: forall p inp mname. ( NiceParameterFull p- , KnownValue (GetEntryPointArgCustom p mname)+ , KnownValue (GetEntrypointArgCustom p mname) )- => EntryPointRef mname- -> IndigoState inp (ContractRef (GetEntryPointArgCustom p mname) & inp)- (Var (ContractRef (GetEntryPointArgCustom p mname)))+ => EntrypointRef mname+ -> IndigoState inp (ContractRef (GetEntrypointArgCustom p mname) & inp)+ (Var (ContractRef (GetEntrypointArgCustom p mname))) selfCalling epRef = do nullaryOp (L.selfCalling @p epRef) makeTopVar contractCalling :: forall cp inp epRef epArg addr exAddr.- ( HasEntryPointArg cp epRef epArg+ ( HasEntrypointArg cp epRef epArg , ToTAddress cp addr , ToT addr ~ ToT Address , IsExpr exAddr addr
src/Indigo/Backend/Case.hs view
@@ -7,8 +7,7 @@ -- | High level statements of Indigo language. module Indigo.Backend.Case- ( (#=)- , caseRec+ ( caseRec , entryCaseRec , entryCaseSimpleRec @@ -27,7 +26,7 @@ import Indigo.Internal import Indigo.Lorentz import qualified Lorentz.ADT as L-import qualified Lorentz.EntryPoints.Doc as L+import qualified Lorentz.Entrypoints.Doc as L import qualified Lorentz.Instr as L import Michelson.Typed.Haskell.Instr.Sum (CaseClauseParam(..), CaseClauses, CtorField(..), InstrCaseC)@@ -71,11 +70,6 @@ liftClear' @(ClassifyReturnValue retBr) @retBr @(x & inp) @inp L.drop ) --- | An alias for '/->' to use when the body is a lambda so that the--- whole thing won't have multiple arrows.-(#=) :: CaseArrow name body clause => Label name -> body -> clause-(#=) a b = a /-> b- -- This constraint is shared by all @case*@ functions. type CaseCommonF f dt guard ret clauses = ( guard :~> dt@@ -99,11 +93,11 @@ -- | 'case_' for pattern-matching on parameter. entryCaseRec- :: forall dt entryPointKind guard inp ret clauses .+ :: forall dt entrypointKind guard inp ret clauses . ( CaseCommon dt guard ret clauses- , DocumentEntryPoints entryPointKind dt+ , DocumentEntrypoints entrypointKind dt )- => Proxy entryPointKind+ => Proxy entrypointKind -> guard -> clauses -> IndigoState inp (RetOutStack ret ++ inp) (RetVars ret)@@ -115,7 +109,7 @@ entryCaseSimpleRec :: forall cp guard inp ret clauses . ( CaseCommon cp guard ret clauses- , DocumentEntryPoints PlainEntryPointsKind cp+ , DocumentEntrypoints PlainEntrypointsKind cp , NiceParameterFull cp , RequireFlatParamEps cp )
src/Indigo/Frontend/Language.hs view
@@ -45,6 +45,7 @@ , entryCaseRec , entryCaseSimple , (//->)+ , (#=) -- * Scope , scope@@ -113,7 +114,7 @@ import Indigo.Internal hiding (SetField, return, (>>), (>>=)) import Indigo.Lorentz import Indigo.Prelude-import Lorentz.EntryPoints.Helpers (RequireSumType)+import Lorentz.Entrypoints.Helpers (RequireSumType) import qualified Lorentz.Instr as L import qualified Lorentz.Run as L import qualified Michelson.Typed as MT@@ -394,11 +395,11 @@ -- | 'caseRec' for pattern-matching on parameter. entryCaseRec- :: forall dt entryPointKind guard ret clauses .+ :: forall dt entrypointKind guard ret clauses . ( CaseCommonF (IndigoMCaseClauseL IndigoM) dt guard ret clauses- , DocumentEntryPoints entryPointKind dt+ , DocumentEntrypoints entrypointKind dt )- => Proxy entryPointKind+ => Proxy entrypointKind -> guard -> clauses -> IndigoM (RetVars ret)@@ -406,12 +407,12 @@ -- | 'entryCaseRec' for tuples. entryCase- :: forall dt entryPointKind guard ret clauses .+ :: forall dt entrypointKind guard ret clauses . ( CaseCommonF (IndigoMCaseClauseL IndigoM) dt guard ret clauses , RecFromTuple clauses- , DocumentEntryPoints entryPointKind dt+ , DocumentEntrypoints entrypointKind dt )- => Proxy entryPointKind+ => Proxy entrypointKind -> guard -> IsoRecTuple clauses -> IndigoM (RetVars ret)@@ -421,7 +422,7 @@ :: forall cp guard ret clauses . ( CaseCommonF (IndigoMCaseClauseL IndigoM) cp guard ret clauses , RecFromTuple clauses- , DocumentEntryPoints PlainEntryPointsKind cp+ , DocumentEntrypoints PlainEntrypointsKind cp , NiceParameterFull cp , RequireFlatParamEps cp )@@ -430,12 +431,32 @@ -> IndigoM (RetVars ret) entryCaseSimple g = oneIndigoM . EntryCaseSimple g . recFromTuple @clauses +{-# DEPRECATED (//->) "use '#=' instead" #-}+-- | An alias for '#=' kept only for backward compatibility.+(//->)+ :: ( CaseArrow name (Var x -> IndigoAnyOut x ret)+ (IndigoCaseClauseL ret ('CaseClauseParam ctor ('OneField x)))+ , ScopeCodeGen retBr+ , ret ~ RetExprs retBr+ , RetOutStack ret ~ RetOutStack retBr+ , KnownValue x+ , name ~ (AppendSymbol "c" ctor)+ )+ => Label name+ -> (Var x -> IndigoM retBr)+ -> IndigoMCaseClauseL IndigoM ret ('CaseClauseParam ctor ('OneField x))+(//->) cName b = OneFieldIndigoMCaseClauseL cName b+infixr 0 //->+ -- | Use this instead of '/->'. -- -- This operator is like '/->' but wraps a body into 'IndigoAnyOut', -- which is needed for two reasons: to allow having any output stack -- and to allow returning not exactly the same values.-(//->)+--+-- It has the added benefit of not being an arrow, so in case the body of the+-- clause is a lambda there won't be several.+(#=) :: ( CaseArrow name (Var x -> IndigoAnyOut x ret) (IndigoCaseClauseL ret ('CaseClauseParam ctor ('OneField x))) , ScopeCodeGen retBr@@ -447,8 +468,8 @@ => Label name -> (Var x -> IndigoM retBr) -> IndigoMCaseClauseL IndigoM ret ('CaseClauseParam ctor ('OneField x))-(//->) cName b = OneFieldIndigoMCaseClauseL cName b-infixr 0 //->+(#=) cName b = OneFieldIndigoMCaseClauseL cName b+infixr 0 #= ---------------------------------------------------------------------------- -- Scope & Functions@@ -632,15 +653,15 @@ selfCalling :: forall p mname. ( NiceParameterFull p- , KnownValue (GetEntryPointArgCustom p mname)+ , KnownValue (GetEntrypointArgCustom p mname) )- => EntryPointRef mname- -> IndigoM (Var (ContractRef (GetEntryPointArgCustom p mname)))+ => EntrypointRef mname+ -> IndigoM (Var (ContractRef (GetEntrypointArgCustom p mname))) selfCalling ep = liftIndigoState $ toSIS $ B.selfCalling @p ep contractCalling :: forall cp epRef epArg addr exAddr.- ( HasEntryPointArg cp epRef epArg+ ( HasEntrypointArg cp epRef epArg , ToTAddress cp addr , ToT addr ~ ToT Address , exAddr :~> addr
src/Indigo/Frontend/Statement.hs view
@@ -14,7 +14,7 @@ import qualified Data.Kind as Kind import Util.TypeLits (AppendSymbol) -import Lorentz.EntryPoints.Helpers (RequireSumType)+import Lorentz.Entrypoints.Helpers (RequireSumType) import qualified Lorentz.Run as L (Contract) import Michelson.Typed.Haskell.Instr.Sum (CaseClauseParam(..), CtorField(..)) @@ -127,15 +127,15 @@ -> StatementF freer (RetVars ret) EntryCase :: ( CaseCommonF (IndigoMCaseClauseL freer) dt guard ret clauses- , DocumentEntryPoints entryPointKind dt+ , DocumentEntrypoints entrypointKind dt )- => Proxy entryPointKind+ => Proxy entrypointKind -> guard -> clauses -> StatementF freer (RetVars ret) EntryCaseSimple :: ( CaseCommonF (IndigoMCaseClauseL freer) cp guard ret clauses- , DocumentEntryPoints PlainEntryPointsKind cp+ , DocumentEntrypoints PlainEntrypointsKind cp , NiceParameterFull cp , RequireFlatParamEps cp )@@ -178,7 +178,7 @@ -> exs -> StatementF freer (Var Address) ContractCalling ::- ( HasEntryPointArg cp epRef epArg+ ( HasEntrypointArg cp epRef epArg , ToTAddress cp addr , ToT addr ~ ToT Address , exAddr :~> addr
src/Indigo/Internal/Expr/Symbolic.hs view
@@ -112,7 +112,7 @@ import qualified Michelson.Typed.Arith as M import Util.TypeTuple import Michelson.Text (unMText)-import Michelson.Untyped.EntryPoints (unsafeBuildEpName)+import Michelson.Untyped.Entrypoints (unsafeBuildEpName) ---------------------------------------------------------------------------- -- Basic@@ -612,8 +612,8 @@ => exDt -> (Label name, exFld) -> Expr dt-(!!) (toExpr -> (ObjMan fa)) (fName, fld) = ObjMan (SetField fa fName (toExpr fld))-dt !! (fName, fld) = ObjMan (SetField (Object $ toExpr dt) fName (toExpr fld))+(!!) (toExpr -> (ObjMan fa)) (fName, eFld) = ObjMan (SetField fa fName (toExpr eFld))+dt !! (fName, eFld) = ObjMan (SetField (Object $ toExpr dt) fName (toExpr eFld)) ---------------------------------------------------------------------------- -- Record and Named@@ -663,7 +663,7 @@ contract :: ( NiceParameterFull p- , NoExplicitDefaultEntryPoint p+ , NoExplicitDefaultEntrypoint p , ToTAddress p addr , ToT addr ~ ToT Address , exAddr :~> addr@@ -673,7 +673,7 @@ self :: ( NiceParameterFull p- , NoExplicitDefaultEntryPoint p+ , NoExplicitDefaultEntrypoint p ) => Expr (ContractRef p) self = Self
src/Indigo/Internal/Expr/Types.hs view
@@ -302,7 +302,7 @@ Contract :: ( NiceParameterFull p- , NoExplicitDefaultEntryPoint p+ , NoExplicitDefaultEntrypoint p , ToTAddress p addr , ToT addr ~ ToT Address , IsExpr exAddr addr@@ -311,7 +311,7 @@ Self :: ( NiceParameterFull p- , NoExplicitDefaultEntryPoint p+ , NoExplicitDefaultEntrypoint p ) => Expr (ContractRef p)
src/Indigo/Internal/State.hs view
@@ -2,7 +2,7 @@ -- -- SPDX-License-Identifier: LicenseRef-MIT-TQ -{-# LANGUAGE DerivingStrategies, InstanceSigs #-}+{-# LANGUAGE InstanceSigs #-} {- | This module contains the core of Indigo language:@@ -37,7 +37,7 @@ ) where import qualified Data.Kind as Kind-import Data.Type.Equality (TestEquality (..))+import Data.Type.Equality (TestEquality(..)) import Data.Typeable (eqT) import Indigo.Backend.Prelude
src/Indigo/Lorentz.hs view
@@ -12,7 +12,8 @@ ( module L ) where -import Lorentz.ADT as L hiding (caseT, case_, construct, constructT, HasField, setField)+import Lorentz.ADT as L hiding (HasField, caseT, case_, construct, constructT, setField)+import Lorentz.Annotation as L (HasAnnotation) import Lorentz.Arith as L import Lorentz.Base as L import Lorentz.Coercions as L@@ -20,8 +21,8 @@ import Lorentz.Constraints as L import Lorentz.Doc as L hiding (contractGeneral, contractGeneralDefault, contractName, doc, docGroup, docStorage)-import Lorentz.EntryPoints as L-import Lorentz.EntryPoints.Doc as L hiding+import Lorentz.Entrypoints as L+import Lorentz.Entrypoints.Doc as L hiding (entryCase, entryCaseSimple, entryCase_, finalizeParamCallingDoc) import Lorentz.Errors as L hiding (failCustom, failCustom_) import Lorentz.Errors.Common as L ()
test/Main.hs view
@@ -9,7 +9,7 @@ import Prelude import Test.Tasty (defaultMainWithIngredients) -import Util.Test.Ingredients (ourIngredients)+import Cleveland.Ingredients (ourIngredients) import Test.Util.Golden (regenerateTests) import Tree (tests)
test/Test/Code/Decomposition.hs view
@@ -12,17 +12,16 @@ ) where import Indigo-import Lorentz.TypeAnns (HasTypeAnn) data Meta = Meta { mWeight :: Integer , mDescr :: MText } deriving stock (Generic, Show)- deriving anyclass (IsoValue)+ deriving anyclass (IsoValue, HasAnnotation) data Color = Blue | White | Red deriving stock (Generic, Show, Enum, Bounded)- deriving anyclass (IsoValue, HasTypeAnn)+ deriving anyclass (IsoValue, HasAnnotation) data Storage = Storage { sColor :: Color@@ -30,7 +29,7 @@ , sY :: Integer , sMeta :: Meta } deriving stock (Generic, Show)- deriving anyclass (IsoValue)+ deriving anyclass (IsoValue, HasAnnotation) instance HasField Meta "weight" Integer where fieldLens = fieldLensADT #mWeight
test/Test/Code/Examples.hs view
@@ -34,13 +34,7 @@ return () ifTest :: L.Contract Integer Integer-ifTest = noOptimizationContract $ compileIndigoContract $ \param -> do- a <- new$ 7 int + param- when (param < a) do- _c <- new$ storageVar @Integer- return ()- _c <- new$ param < storageVar @Integer- return ()+ifTest = noOptimizationContract contractIfValueLorentz contractIfLorentz :: ContractCode Integer Integer contractIfLorentz = L.cCode ifTest@@ -79,14 +73,14 @@ -- 2. branches can return not exactly the same types --- it's useful when you have case bodies in-place, like -- case_ param $- -- ( #cSomething1 //-> const $ return (5 int)- -- , #cSomething2 //-> (\var -> return (10 +. var))- -- , #cSomething3 //-> return var)+ -- ( #cSomething1 #= const $ return (5 int)+ -- , #cSomething2 #= (\var -> return (10 +. var))+ -- , #cSomething3 #= return var) -- Pay attention, that all three branches have different return types -- but they all correspond to the same expression 'Expr Integer'. _flag <- case_ param $- ( #cDSub //-> doSub storageVar- , #cDAdd //-> doAdd storageVar+ ( #cDSub #= doSub storageVar+ , #cDAdd #= doAdd storageVar ) return () @@ -96,8 +90,8 @@ deriving stock (Generic, Show) deriving anyclass (IsoValue) -instance ParameterHasEntryPoints DummyOp where- type ParameterEntryPointsDerivation DummyOp = EpdPlain+instance ParameterHasEntrypoints DummyOp where+ type ParameterEntrypointsDerivation DummyOp = EpdPlain doSub :: Var Integer -> Var (Integer, Integer) -> IndigoM (Var Bool) doSub storage p = do@@ -123,7 +117,7 @@ contractOpsLorentz :: ContractCode (Maybe KeyHash) Address contractOpsLorentz = compileIndigoContract $ \param -> do setDelegate param- m <- new$ 0 mutez+ m <- new$ zeroMutez is <- new$ 0 int addr <- createLorentzContract ifTest param m is storageVar =: addr
test/Test/Code/Lambda.hs view
@@ -15,9 +15,9 @@ import Indigo import qualified Lorentz as L-import Lorentz.TypeAnns (HasTypeAnn) import Test.Util +{-# ANN sumLambda ("HLint: ignore Use uncurry" :: Text) #-} sumLambda :: pr :~> (Integer, Integer) => pr -> IndigoM (Var Integer) sumLambda = defNamedPureLambda1 "add" $ \pr -> pure (fst pr + snd pr) @@ -44,7 +44,7 @@ , HasSideEffects, HasStorage Integer ) => ex -> IndigoM () lambdaCreateContract = defNamedEffLambda1 @Integer "create storage" $ \paramSt -> do- m <- new$ 0 mutez+ m <- new$ zeroMutez _addr <- createLorentzContract dummyContract (fst paramSt) m (snd paramSt) storageVar @Integer += 1 int @@ -68,7 +68,7 @@ newtype SmallMatrix = SmallMatrix [[Integer]] deriving stock (Generic, Show) deriving anyclass (IsoValue)- deriving newtype (IterOpHs, HasTypeAnn)+ deriving newtype (IterOpHs, HasAnnotation) sumInRowTwice :: (HasStorage Integer, lst :~> [Integer]) => lst -> IndigoM () sumInRowTwice = defNamedLambda1 @Integer "sum of the list" $ \lst -> do
test/Test/Decomposition.hs view
@@ -19,9 +19,10 @@ import qualified Hedgehog.Range as Range import Test.Tasty (TestTree) +import Cleveland.Util (genTuple2)+import Hedgehog.Gen.Michelson (genMText) import Michelson.Interpret (MichelsonFailed(..))-import Michelson.Test.Util (genTuple2)-import Michelson.Text (genMText, mt)+import Michelson.Text (mt) import Test.Code.Decomposition import Test.Util
test/Test/Examples.hs view
@@ -41,16 +41,16 @@ import qualified Hedgehog.Range as Range import Test.Tasty (TestTree) +import Cleveland.Util (genTuple2)+import Hedgehog.Gen.Tezos.Address (genAddress)+import Hedgehog.Gen.Tezos.Crypto (genKeyHash) import Lorentz import Michelson.Doc (DName(..)) import Michelson.Interpret (MichelsonFailed(..)) import Michelson.Runtime.GState-import Michelson.Test.Util (genTuple2) import qualified Michelson.Typed as T import Test.Code.Examples import Test.Util-import Tezos.Address (genAddress)-import Tezos.Crypto (genKeyHash) -------------------------------------------------------------------------------- -- Tests@@ -270,4 +270,3 @@ drop # drop # -- return `st` swap # pair-
test/Test/Expr.hs view
@@ -19,22 +19,23 @@ import qualified Hedgehog.Range as Range import Test.Tasty (TestTree) +import Cleveland.Util (genTuple2)+import Hedgehog.Gen.Lorentz.UStore (genUStoreFieldExt, genUStoreSubMap)+import Hedgehog.Gen.Michelson (genMText)+import Hedgehog.Gen.Michelson.Typed (genBigMap)+import Hedgehog.Gen.Tezos.Address (genAddress)+import Hedgehog.Gen.Tezos.Core (genChainId, genMutez)+import Hedgehog.Gen.Tezos.Crypto (genKeyHash, genPublicKey, genSignature) import qualified Indigo as I import Indigo.Lorentz-import Lorentz.UStore.Types (genUStoreFieldExt, genUStoreSubMap) import Michelson.Interpret (MichelsonFailed(..), runUnpack) import Michelson.Interpret.Pack import Michelson.Runtime.GState (genesisAddress)-import Michelson.Test.Gen (genMutez)-import Michelson.Test.Util (genTuple2) import Michelson.Text-import Michelson.Typed (genBigMap) import qualified Michelson.Typed as T import Test.Code.Expr import Test.Util-import Tezos.Address (genAddress)-import Tezos.Core-import Tezos.Crypto (genKeyHash, genPublicKey, genSignature)+import Tezos.Core (dummyChainId, unsafeMkMutez) import qualified Tezos.Crypto as C genMyTemplate :: Gen MyTemplate
test/Test/Lambda.hs view
@@ -25,13 +25,13 @@ import Test.Tasty (TestTree) import Test.Tasty.HUnit (testCase) +import Hedgehog.Gen.Tezos.Crypto (genKeyHash) import Lorentz hiding (map) import Michelson.Interpret (MichelsonFailed(..)) import Michelson.Runtime.GState import qualified Michelson.Typed as T import Test.Code.Lambda import Test.Util-import Tezos.Crypto (genKeyHash) test_Lambdas :: [TestTree] test_Lambdas =
test/Test/Lookup.hs view
@@ -15,7 +15,6 @@ import Test.HUnit (Assertion, (@?=)) import Test.Tasty (TestTree, testGroup) import Test.Tasty.HUnit (testCase)-import Util.Test.Arbitrary () import Indigo hiding (fromInteger) import Indigo.Backend.Prelude (fromInteger)