package base
Source file sign.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34open! Import include Sign0 include Identifiable.Make (Sign0) (* Open [Replace_polymorphic_compare] after including functor applications so they do not shadow its definitions. This is here so that efficient versions of the comparison functions are available within this module. *) open! Replace_polymorphic_compare let to_string_hum = function | Neg -> "negative" | Zero -> "zero" | Pos -> "positive" ;; let to_float = function | Neg -> -1. | Zero -> 0. | Pos -> 1. ;; let flip = function | Neg -> Pos | Zero -> Zero | Pos -> Neg ;; let ( * ) t t' = of_int (to_int t * to_int t') (* Include type-specific [Replace_polymorphic_compare at the end, after any functor applications that could shadow its definitions. This is here so that efficient versions of the comparison functions are exported by this module. *) include Replace_polymorphic_compare