Module type Relude_Interface.BOUNDED_ENUM

Module type which describes a type that can be ordered and for which we can determine a lawful chain of successors and predecessors, and there is a top and bottom bound.

include BsBastet.Interface.BOUNDED;
type t;
let eq: t => t => bool;
let compare: t => t => BsBastet.Interface.ordering;
let top: t;
let bottom: t;
include ENUM with type ENUM.t := t;
include BsBastet.Interface.ORD;
type t;
let eq: t => t => bool;
let compare: t => t => BsBastet.Interface.ordering;
let succ: t => option(t);
let pred: t => option(t);
let cardinality: int;
let fromEnum: t => int;
let toEnum: int => option(t);