functor (Model : OUTPUT_MODEL->   sig     val output :       ('a, 'b, 'c) Model.channel ->       Sosa.BASIC_STRING.t -> (unit, 'e, 'f) Model.thread   end