package archetype

  1. Overview
  2. Docs
type t
type label_kind = [
  1. | `Plain
  2. | `Code
  3. | `Loop of A.ptyp
]
type record = [
  1. | `Pre of A.lident
  2. | `Full of recorddecl
]
type state = [
  1. | `Pre of A.lident
  2. | `Full of statedecl
]
type asset = [
  1. | `Pre of A.lident
  2. | `Full of assetdecl
]
type entry = [
  1. | `Label of t * label_kind
  2. | `State of state
  3. | `StateByCtor of statedecl * A.lident
  4. | `Type of A.ptyp
  5. | `Local of A.ptyp * locvarkind
  6. | `Global of vardecl
  7. | `Definition of definitiondecl
  8. | `Asset of asset
  9. | `Record of record
  10. | `Event of record
  11. | `Entry of t tentrydecl
  12. | `Function of t fundecl
  13. | `Predicate of preddecl
  14. | `Field of Ident.ident * [ `Asset | `Record | `Event ]
  15. | `Context of assetdecl * Ident.ident option
  16. | `Import of importdecl
  17. | `Namespace of namespace
]
and namespace
and locvarkind = [
  1. | `Standard
  2. | `Const
  3. | `Argument
  4. | `Pattern
  5. | `LoopIndex
]
type ecallback = error -> unit
val create : ecallback -> t
val emit_error : t -> error -> unit
val name_free : t -> Ident.ident -> [ `Free | `Clash of Location.t option ]
val lookup_entry : t -> longident -> entry option
val open_ : t -> t
val close : t -> t
val inscope : t -> (t -> t * 'a) -> t * 'a
module Label : sig ... end
module Type : sig ... end
module Local : sig ... end
module Definition : sig ... end
module Var : sig ... end
module Function : sig ... end
module Predicate : sig ... end
module State : sig ... end
module Record : sig ... end
module Event : sig ... end
module Asset : sig ... end
module Tentry : sig ... end
module Context : sig ... end
module Import : sig ... end