sig
  type 'a t = { primary : 'a; backup : 'a; }
  val select :
    Core.Std.Date.t ->
    slot1:'a -> slot2:'a -> 'a Alternating_primary_backup_assignment.t
end