Source file unit.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
open! Import

module T = struct
  type t = unit
  [@@deriving enumerate, globalize, hash, sexp ~stackify ~unboxed, sexp_grammar]

  let compare _ _ = 0
  let%template[@mode local] compare _ _ = 0
  let%template[@mode local] equal _ _ = true

  let of_string = function
    | "()" -> ()
    | _ -> failwith "Base.Unit.of_string: () expected"
  ;;

  let to_string () = "()"
  let module_name = "Base.Unit"
end

include T

include%template Identifiable.Make [@modality portable] (T)

let invariant () = ()