--- /dev/null
+type compare =
+LT
+ | EQ
+ | GT
+;;
+
+let compare_rec =
+(function p -> (function p1 -> (function p2 -> (function c ->
+(match c with
+ LT -> p
+ | EQ -> p1
+ | GT -> p2)
+))))
+;;
+
+let compare_rect =
+(function p -> (function p1 -> (function p2 -> (function c ->
+(match c with
+ LT -> p
+ | EQ -> p1
+ | GT -> p2)
+))))
+;;
+
+let compare_invert =
+(function c ->
+(match c with
+ LT -> GT
+ | EQ -> EQ
+ | GT -> LT)
+)
+;;
+