sig
  type 'a elem = Line.t
  type initial = sourced
  val reader : unit -> in_channel -> initial elem
  val of_string : unit -> string -> initial elem
  val string_of : unit -> 'a elem -> string
end