Module Transform.Features

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 = 
| Check_ok
| Check_fail of key * value * value
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