role assignment for systems with a primary and backup instances that switch roles daily for ease of deploying new versions.
type 'a t = {
primary : 'a;
backup : 'a;
}
val select : Core.Std.Date.t -> slot1:'a -> slot2:'a -> 'a t