


## threadkit-imperative-io.api
# Compiled by:
# src/lib/std/standard.lib# This extends the SMLBL Imperative_IO interface with mailop-valued operations.
api Threadkit_Imperative_Io {
# include Imperative_IO
Vector;
Element;
Input_Stream;
Output_Stream;
read: Input_Stream -> Vector;
read_one: Input_Stream -> Null_Or( Element );
read_n: ((Input_Stream, Int)) -> Vector;
read_all: Input_Stream -> Vector;
can_read: ((Input_Stream, Int)) -> Null_Or( Int );
lookahead: Input_Stream -> Null_Or( Element );
close_input: Input_Stream -> Void;
end_of_stream: Input_Stream -> Bool;
write: ((Output_Stream, Vector)) -> Void;
write_one: ((Output_Stream, Element)) -> Void;
flush: Output_Stream -> Void;
close_output: Output_Stream -> Void;
package pure_io: Threadkit_Pure_Io; # Threadkit_Pure_Io is from src/lib/std/src/io/threadkit-pure-io.api sharing Vector == pure_io::Vector;
sharing Element == pure_io::Element;
/*
get_pos_in: Input_Stream -> pure_io::in_pos
set_pos_in: (Input_Stream * pure_io::in_pos) -> Void
*/
make_instream: pure_io::Input_Stream -> Input_Stream;
get_instream: Input_Stream -> pure_io::Input_Stream;
set_instream: ((Input_Stream, pure_io::Input_Stream)) -> Void;
get_output_position: Output_Stream -> pure_io::Out_Position;
set_output_position: ((Output_Stream, pure_io::Out_Position)) -> Void;
make_outstream: pure_io::Output_Stream -> Output_Stream;
get_outstream: Output_Stream -> pure_io::Output_Stream;
set_outstream: ((Output_Stream, pure_io::Output_Stream)) -> Void;
input1evt: Input_Stream -> threadkit::Mailop( Null_Or( Element ) );
input_nevt: ((Input_Stream, Int)) -> threadkit::Mailop( Vector );
input_mailop: Input_Stream -> threadkit::Mailop( Vector );
input_all_mailop: Input_Stream -> threadkit::Mailop( Vector );
};
## COPYRIGHT (c) 1991 John H. Reppy.
## COPYRIGHT (c) 1996 AT&T Research.
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2011,
## released under Gnu Public Licence version 3.


