%---------------------------------------------------------------------------% % vim: ts=4 sw=4 et ft=mercury %---------------------------------------------------------------------------% :- module stream_test. :- interface. :- import_module io. :- pred main(io::di, io::uo) is det. :- implementation. :- import_module char. :- import_module list. :- import_module pprint. :- import_module stream. :- import_module univ. :- type foo ---> foo ; bar ; baz. main(!IO) :- io.stdout_stream(Stdout, !IO), put(Stdout, 561, !IO), put(Stdout, "\nHello World!\n", !IO), put(Stdout, 'a', !IO), put(Stdout, "\n", !IO), put(Stdout, univ([foo, bar, baz]), !IO), put(Stdout, "\n", !IO), list.duplicate(10, foo, ListFoo), pprint.write(Stdout, 4, to_doc(ListFoo), !IO), io.nl(Stdout, !IO), io.stdin_stream(Stdin, !IO), input_stream_fold(Stdin, char_list_cons, [], PartialResult, !IO), ( PartialResult = ok(Result), io.write(Result, !IO), io.nl(!IO) ; PartialResult = error(_, _), io.write_string("TEST FAILED\n", !IO) ). :- pred char_list_cons(char::in, list(char)::in, list(char)::out) is det. char_list_cons(X, Xs, [X | Xs]).