sig
  val ( % ) : ('-> 'b) -> ('-> 'a) -> '-> 'b
  val ( %% ) : ('-> 'b) -> ('-> 'c) -> '-> 'c
end