let activate_exn ?log t ~reason =
  match t.history with 
  | `Passive _ as c ->
    with_history t (`Active (State.to_history ?log c, reason))
  | _ -> raise (Invalid_argument "activate_exn")