Function.Invariant
T : Interface.TYPE
type 'a t
= T.t -> 'a
val imap : ('a -> 'b) -> ('b -> 'a) -> 'a t -> 'b t