(Model: OUTPUT_MODEL) = struct let (>>=) = Model.bind let output chan l = List.fold_left l ~init:(Model.return ()) ~f:(fun prev_m c -> prev_m >>= fun () -> Model.output chan (Char.to_native_string c)) end