val singleton : 'e var -> 'x -> ( 'e, 'x ) t
val add : 'e var -> 'x -> ( 'e, 'x ) t -> ( 'e, 'x ) t
val update :
'e var ->
( 'x option -> 'x option ) ->
( 'e, 'x ) t ->
( 'e, 'x ) t
val find : 'e var -> ( 'e, 'x ) t -> 'x
val find_opt : 'e var -> ( 'e, 'x ) t -> 'x option
val bindings : ( 'e, 'x ) t -> ('e var * 'x) list
val mem : 'e var -> ( 'e, 'x ) t -> bool
val union :
( 'e var -> 'x -> 'x -> 'x option ) ->
( 'e, 'x ) t ->
( 'e, 'x ) t ->
( 'e, 'x ) t
val fold : ( 'e var -> 'x -> 'acc -> 'acc ) -> ( 'e, 'x ) t -> 'acc -> 'acc