functor (Model : OUTPUT_MODEL) ->
sig
type ('a, 'b, 'c) thread = ('a, 'b, 'c) Model.thread
type ('a, 'b, 'c) channel = ('a, 'b, 'c) Model.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