import deriving 0.1.1a
[deriving.git] / lib / enum.mli
blobac871b1bdfd4eb1106a8bcaf9f8461ffc5ec253f
1 module type Enum =
2 sig
3 type a
4 val succ : a -> a
5 val pred : a -> a
6 val to_enum : int -> a
7 val from_enum : a -> int
8 val enum_from : a -> a list
9 val enum_from_then : a -> a -> a list
10 val enum_from_to : a -> a -> a list
11 val enum_from_then_to : a -> a -> a -> a list
12 end
14 module Defaults
15 (E : sig type a val numbering : (a * int) list end)
16 : Enum with type a = E.a
18 module Defaults'
19 (E : sig type a val from_enum : a -> int val to_enum : int -> a end)
20 (B : Bounded.Bounded with type a = E.a)
21 : Enum with type a = B.a
23 module Enum_bool : Enum with type a = bool
24 module Enum_char : Enum with type a = char
25 module Enum_int : Enum with type a = int
26 module Enum_unit : Enum with type a = unit