Make_access.1-T
type ('a, 'b) t
val field : ('at -> 'a * ('b -> 'bt)) -> ('a, 'b) t -> ('at, 'bt) t
A legal implementation of this function must satisfy the following properties:
field (fun a -> a, Fn.id) = Fn.id
Fn.compose (field f) (field g) = field (fun a -> let a, j = f a in let a, k = g a in a, Fn.compose j k)