let in_channel_to_item_stream ?(buffer_size=65536) ?filename inp =
let x = Transform.string_to_raw ?filename () in
let y = Transform.raw_to_item () in
Biocaml_transform.(
compose_results x y ~on_error:(function `left x -> x | `right x -> x)
|> in_channel_strings_to_stream ~buffer_size inp
)