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