///|
pub fn stream_document(text : String) -> VcfDocument raise ParseError {
  parse_document(text)
}

///|
pub fn stream_records(
  text : String,
  consume~ : (VcfRecord) -> Unit,
) -> VcfHeader raise ParseError {
  let document = stream_document(text)
  for record in document.records {
    consume(record)
  }
  document.header
}