sig
  external id : '-> 'a = "%identity"
  val const : '-> '-> 'a
  val compose : ('-> 'c) -> ('-> 'b) -> '-> 'c
  val flip : ('-> '-> 'c) -> '-> '-> 'c
  val negate : ('-> bool) -> '-> bool
  val protect : finally:(unit -> unit) -> (unit -> 'a) -> 'a
  exception Finally_raised of exn
end