Module type Data.S

module Phase : Phase.S
type phase = Phase.t
type players = Players.t
type rolemap = bool Players.Player.Roles.Role.Map.t
type nonrec t = (phase, players) t
type nonrec initial = (phase, rolemap) initial
val initial : ?starting_phase:phase -> roles -> initial
exception PlayerRolesDisjoint of Players.t
exception PlayerRolesInvalid of Players.t
val create : initial -> players -> t
val next : t -> t
val starting_phase : initial -> phase
val rolemap : initial -> rolemap
val phase : t -> phase
val players : t -> players