`sig
external ( |! ) : 'a -> ('a -> 'b) -> 'b = "%revapply"
external ( |> ) : 'a -> ('a -> 'b) -> 'b = "%revapply"
val const : 'a -> 'b -> 'a
external ignore : 'a -> unit = "%ignore"
val non : ('a -> bool) -> 'a -> bool
val forever : (unit -> unit) -> exn
val apply_n_times : n:int -> ('a -> 'a) -> 'a -> 'a
external id : 'a -> 'a = "%identity"
val compose : ('b -> 'c) -> ('a -> 'b) -> 'a -> 'c
val flip : ('a -> 'b -> 'c) -> 'b -> 'a -> 'c
end`