A collection of experiments, more or less organized.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Repr.equal

xvw fa6f2ac2 1ae89df0

+29
+28
lib/pidgin/repr.ml
··· 20 20 21 21 let use f conv x = conv (f x) 22 22 23 + let rec equal a b = 24 + match a, b with 25 + | Null, Null | Unit, Unit -> true 26 + | Bool a, Bool b -> Bool.equal a b 27 + | Int a, Int b -> Int.equal a b 28 + | Int64 a, Int64 b -> Int64.equal a b 29 + | Float a, Float b -> Float.equal a b 30 + | Char a, Char b -> Char.equal a b 31 + | String a, String b -> String.equal a b 32 + | Pair (a, b), Pair (x, y) -> equal a x && equal b y 33 + | List a, List b -> List.equal equal a b 34 + | Constr (ka, va), Constr (kb, vb) -> 35 + String.equal ka kb && Option.equal equal va vb 36 + | Record a, Record b -> Fields.equal equal a b 37 + | Null, _ 38 + | Unit, _ 39 + | Bool _, _ 40 + | Int _, _ 41 + | Int64 _, _ 42 + | Float _, _ 43 + | Char _, _ 44 + | String _, _ 45 + | Pair (_, _), _ 46 + | List _, _ 47 + | Constr (_, _), _ 48 + | Record _, _ -> false 49 + ;; 50 + 23 51 module Lit = struct 24 52 let null = Null 25 53 let unit = Unit
+1
lib/pidgin/repr.mli
··· 111 111 (** {1 Helpers} *) 112 112 113 113 val use : ('b -> 'a) -> 'a conv -> 'b conv 114 + val equal : t -> t -> bool 114 115 115 116 module Infix : sig 116 117 val ( <$> ) : ('b -> 'a) -> 'a conv -> 'b conv