sig
type ('a, 'b, 'c) thread
type ('a, 'b, 'c) channel
val return : 'a -> ('a, 'b, 'c) Sosa.OUTPUT_MODEL.thread
val bind :
('a, 'b, 'c) Sosa.OUTPUT_MODEL.thread ->
('a -> ('d, 'b, 'c) Sosa.OUTPUT_MODEL.thread) ->
('d, 'b, 'c) Sosa.OUTPUT_MODEL.thread
val output :
('a, 'b, 'c) Sosa.OUTPUT_MODEL.channel ->
String.t -> (unit, 'e, 'f) Sosa.OUTPUT_MODEL.thread
end