sig type +'a t val fn : ('a -> 'b) -> ('a -> 'b) Fn.Abstract.t val app : ('a -> 'b) Fn.Abstract.t -> 'a -> 'b end