type ('a, 'b, 'c) writer
= 'a writer0 ‑> ('b, 'c) S1.writer
type ('a, 'b, 'c) reader
= 'a reader0 ‑> ('b, 'c) S1.reader
type ('a, 'b, 'c) t
= 'a t0 ‑> ('b, 'c) S1.t