Typ.Data_spec
type ('r_var, 'r_value, 'k_var, 'k_value) t =
| :: : ( 'var, 'value ) typ * ( 'r_var, 'r_value, 'k_var, 'k_value ) t -> ( 'r_var, 'r_value, 'var -> 'k_var, 'value -> 'k_value ) t
| [] : ( 'r_var, 'r_value, 'r_var, 'r_value ) t