module Features: sig
.. end
type
t
type
value =
| |
Present |
| |
Absent |
| |
Mono |
| |
Poly |
| |
Eqn_single |
| |
Eqn_nested |
| |
Eqn_app |
type
key =
| |
Ty |
| |
Eqn |
| |
If_then_else |
| |
Ind_preds |
| |
Match |
| |
Data |
| |
Codata |
| |
Fun |
| |
HOF |
| |
Prop_args |
| |
Copy |
val empty : t
For writing specifications
val full : t
Every feature is on
val update : key ->
value -> t -> t
update k v t
sets the key k
to v
in t
. This is useful to
specify how a specification changed
val update_l : (key * value) list ->
t -> t
val of_list : (key * value) list ->
t
type
check_res =
val check : t ->
spec:t -> check_res
check t ~spec
returns Check_ok
if all features required by spec
are
valid in t
, and Check_fail (key, expected, actual)
otherwise
val print : t Transform.printer