`val names : string list`
`val coefficient : ([< `Read | `Set_and_create ], t, Coefficient.t) Fieldslib.Field.t_with_perm`
`val pred : ([< `Read | `Set_and_create ], t, Variable.t) Fieldslib.Field.t_with_perm`
`val make_creator : pred:(([< `Read | `Set_and_create ], t, Variable.t) Fieldslib.Field.t_with_perm ‑> 'a ‑> ('b ‑> Variable.t) * 'c) ‑> coefficient:(([< `Read | `Set_and_create ], t, Coefficient.t) Fieldslib.Field.t_with_perm ‑> 'c ‑> ('b ‑> Coefficient.t) * 'd) ‑> 'a ‑> ('b ‑> t) * 'd`
`val create : pred:Variable.t ‑> coefficient:Coefficient.t ‑> t`
`val map : pred:(([< `Read | `Set_and_create ], t, Variable.t) Fieldslib.Field.t_with_perm ‑> Variable.t) ‑> coefficient:(([< `Read | `Set_and_create ], t, Coefficient.t) Fieldslib.Field.t_with_perm ‑> Coefficient.t) ‑> t`
`val iter : pred:(([< `Read | `Set_and_create ], t, Variable.t) Fieldslib.Field.t_with_perm ‑> unit) ‑> coefficient:(([< `Read | `Set_and_create ], t, Coefficient.t) Fieldslib.Field.t_with_perm ‑> unit) ‑> unit`
`val fold : init:'a ‑> pred:('a ‑> ([< `Read | `Set_and_create ], t, Variable.t) Fieldslib.Field.t_with_perm ‑> 'b) ‑> coefficient:('b ‑> ([< `Read | `Set_and_create ], t, Coefficient.t) Fieldslib.Field.t_with_perm ‑> 'c) ‑> 'c`
`val map_poly : ([< `Read | `Set_and_create ], t, 'a) Fieldslib.Field.user ‑> 'a list`
`val for_all : pred:(([< `Read | `Set_and_create ], t, Variable.t) Fieldslib.Field.t_with_perm ‑> bool) ‑> coefficient:(([< `Read | `Set_and_create ], t, Coefficient.t) Fieldslib.Field.t_with_perm ‑> bool) ‑> bool`
`val exists : pred:(([< `Read | `Set_and_create ], t, Variable.t) Fieldslib.Field.t_with_perm ‑> bool) ‑> coefficient:(([< `Read | `Set_and_create ], t, Coefficient.t) Fieldslib.Field.t_with_perm ‑> bool) ‑> bool`
`val to_list : pred:(([< `Read | `Set_and_create ], t, Variable.t) Fieldslib.Field.t_with_perm ‑> 'a) ‑> coefficient:(([< `Read | `Set_and_create ], t, Coefficient.t) Fieldslib.Field.t_with_perm ‑> 'a) ‑> 'a list`
`module Direct : sig ... end`