Synint.Sgn
type global_prag =
| No_strengthening of {
location : Syncom.Location.t;
}
| Warn_on_coverage_error of {
location : Syncom.Location.t;
}
| Initiate_coverage_checking of {
location : Syncom.Location.t;
}
type prag =
| NamePrag of {
location : Syncom.Location.t;
constant : Syncom.Qualified_identifier.t;
meta_variable_base : Syncom.Identifier.t;
computation_variable_base : Syncom.Identifier.t Support.Option.t;
}
| NotPrag of {
location : Syncom.Location.t;
}
| OpenPrag of {
location : Syncom.Location.t;
module_identifier : Syncom.Qualified_identifier.t;
}
| DefaultAssocPrag of {
location : Syncom.Location.t;
associativity : Syncom.Associativity.t;
}
| PrefixFixityPrag of {
location : Syncom.Location.t;
constant : Syncom.Qualified_identifier.t;
precedence : Support.Int.t Support.Option.t;
postponed : Stdlib.Bool.t;
}
| InfixFixityPrag of {
location : Syncom.Location.t;
constant : Syncom.Qualified_identifier.t;
precedence : Support.Int.t Support.Option.t;
associativity : Syncom.Associativity.t Support.Option.t;
postponed : Stdlib.Bool.t;
}
| PostfixFixityPrag of {
location : Syncom.Location.t;
constant : Syncom.Qualified_identifier.t;
precedence : Support.Int.t Support.Option.t;
postponed : Stdlib.Bool.t;
}
| AbbrevPrag of {
location : Syncom.Location.t;
module_identifier : Syncom.Qualified_identifier.t;
abbreviation : Syncom.Identifier.t;
}
AbbrevPrag { module_identifier; abbreviation; _ }
is the pragma --abbrev module_identifier abbreviation.
for defining the alias abbreviation
for the module module_identifier
.
| Query of {
location : Syncom.Location.t;
name : Syncom.Identifier.t Support.Option.t;
typ : LF.typ * Syncom.Id.offset;
expected_solutions : Support.Int.t Support.Option.t;
maximum_tries : Support.Int.t Support.Option.t;
}
Logic programming query on LF type
*)type positivity_flag =
| Nocheck
| Positivity
| Stratify of Syncom.Location.t * int
| StratifyAll of Syncom.Location.t
type decl =
| Typ of {
location : Syncom.Location.t;
cid : Syncom.Id.cid_typ;
identifier : Syncom.Identifier.t;
kind : LF.kind;
}
LF type family declaration
*)| Const of {
location : Syncom.Location.t;
cid : Syncom.Id.cid_term;
identifier : Syncom.Identifier.t;
typ : LF.typ;
}
LF type constant declaration
*)| CompTyp of {
location : Syncom.Location.t;
cid : Syncom.Id.cid_comp_typ;
identifier : Syncom.Identifier.t;
kind : Comp.kind;
positivity_flag : positivity_flag;
}
Computation-level data type constant declaration
*)| CompCotyp of {
location : Syncom.Location.t;
cid : Syncom.Id.cid_comp_cotyp;
identifier : Syncom.Identifier.t;
kind : Comp.kind;
}
Computation-level codata type constant declaration
*)| CompConst of {
location : Syncom.Location.t;
cid : Syncom.Id.cid_comp_const;
identifier : Syncom.Identifier.t;
typ : Comp.typ;
}
Computation-level type constructor declaration
*)| CompDest of {
location : Syncom.Location.t;
cid : Syncom.Id.cid_comp_dest;
identifier : Syncom.Identifier.t;
mctx : LF.mctx;
observation_typ : Comp.typ;
return_typ : Comp.typ;
}
Computation-level type destructor declaration
*)| CompTypAbbrev of {
location : Syncom.Location.t;
cid : Syncom.Id.cid_comp_typdef;
identifier : Syncom.Identifier.t;
kind : Comp.kind;
typ : Comp.typ;
}
Synonym declaration for computation-level type
*)| Schema of {
location : Syncom.Location.t;
cid : Syncom.Id.cid_schema;
identifier : Syncom.Identifier.t;
schema : LF.schema;
}
Declaration of a specification for a set of contexts
*)| Val of {
location : Syncom.Location.t;
cid : Syncom.Id.cid_prog;
identifier : Syncom.Identifier.t;
typ : Comp.typ;
expression : Comp.exp;
expression_value : Comp.value option;
}
Computation-level value declaration
*)| Recursive_declarations of {
location : Syncom.Location.t;
declarations : decl Support.List1.t;
}
Mutually-recursive declarations
*)| Theorem of {
identifier : Syncom.Identifier.t;
cid : Syncom.Id.cid_prog;
typ : Comp.typ;
body : Comp.thm;
location : Syncom.Location.t;
}
Theorem declaration
*)| Module of {
location : Syncom.Location.t;
cid : Syncom.Id.module_id;
identifier : Syncom.Identifier.t;
entries : entry list;
}
Namespace declaration for other declarations
*)Reconstructed signature element
and entry =
| Pragma of {
location : Syncom.Location.t;
pragma : prag;
}
| Declaration of {
location : Syncom.Location.t;
declaration : decl;
}
| Comment of {
location : Syncom.Location.t;
content : Support.String.t;
}
Documentation comment
*)type sgn_file = {
location : Syncom.Location.t;
global_pragmas : global_prag list;
entries : entry list;
}
type sgn = sgn_file Support.List1.t
Reconstructed Beluga project