type fonctions_booleennes = Fbool of bool -> bool ;; let vrai = Fbool (function x -> true) and faux = Fbool (function x -> false);; let ou = function f1 -> function f2 -> match (f1,f2) with ((Fbool f1), (Fbool f2)) -> Fbool (function x -> (f1 x) || (f2 x)) ;;