sig
  type +'a t
  val map : ('-> 'b) -> 'a t -> 'b t
  val pure : '-> 'CCCat.APPLICATIVE.t
  val ( <*> ) :
    ('-> 'b) CCCat.APPLICATIVE.t ->
    'CCCat.APPLICATIVE.t -> 'CCCat.APPLICATIVE.t
end