Signature.Declaration
type t =
| Typ of {
location : Syncom.Location.t;
identifier : Syncom.Identifier.t;
kind : Synext__.Synext_definition.LF.Kind.t;
}
LF type-level constant declaration.
*)| Const of {
location : Syncom.Location.t;
identifier : Syncom.Identifier.t;
typ : Synext__.Synext_definition.LF.Typ.t;
}
LF term-level constant declaration.
*)| CompTyp of {
location : Syncom.Location.t;
identifier : Syncom.Identifier.t;
kind : Synext__.Synext_definition.Comp.Kind.t;
datatype_flavour : [ `Inductive | `Stratified ];
}
Computation-level data type constant declaration.
*)| CompCotyp of {
location : Syncom.Location.t;
identifier : Syncom.Identifier.t;
kind : Synext__.Synext_definition.Comp.Kind.t;
}
Computation-level codata type constant declaration.
*)| CompConst of {
location : Syncom.Location.t;
identifier : Syncom.Identifier.t;
typ : Synext__.Synext_definition.Comp.Typ.t;
}
Computation-level type constructor declaration.
*)| CompDest of {
location : Syncom.Location.t;
identifier : Syncom.Identifier.t;
observation_type : Synext__.Synext_definition.Comp.Typ.t;
return_type : Synext__.Synext_definition.Comp.Typ.t;
}
Computation-level type destructor declaration.
*)| Schema of {
location : Syncom.Location.t;
identifier : Syncom.Identifier.t;
schema : Synext__.Synext_definition.Meta.Schema.t;
}
Declaration of a specification for a set of contexts.
*)| Recursive_declarations of {
location : Syncom.Location.t;
declarations : t Support.List1.t;
}
Recursive declaration(s).
*)| Theorem of {
location : Syncom.Location.t;
identifier : Syncom.Identifier.t;
typ : Synext__.Synext_definition.Comp.Typ.t;
order : Totality.Declaration.t Support.Option.t;
body : Synext__.Synext_definition.Comp.Expression.t;
}
Beluga theorem declaration.
*)| Proof of {
location : Syncom.Location.t;
identifier : Syncom.Identifier.t;
typ : Synext__.Synext_definition.Comp.Typ.t;
order : Totality.Declaration.t Support.Option.t;
body : Synext__.Synext_definition.Harpoon.Proof.t;
}
Harpoon proof declaration.
*)| CompTypAbbrev of {
location : Syncom.Location.t;
identifier : Syncom.Identifier.t;
kind : Synext__.Synext_definition.Comp.Kind.t;
typ : Synext__.Synext_definition.Comp.Typ.t;
}
Declaration for a computation-level type function. The parameters introduced by Pi-kinds in kind
are parameters to the type typ
.
| Val of {
location : Syncom.Location.t;
identifier : Syncom.Identifier.t;
typ : Synext__.Synext_definition.Comp.Typ.t Support.Option.t;
expression : Synext__.Synext_definition.Comp.Expression.t;
}
Computation-level value declaration.
*)| Module of {
location : Syncom.Location.t;
identifier : Syncom.Identifier.t;
entries : Entry.t Support.List.t;
}
Namespace declaration for other declarations.
*)Parsed signature element