open Lwt.Syntax let start domain : Portal.t Lwt.t = let* stream, _push = Portal.connect domain in let push = function | None -> _push (Some Portal.stanza_close); _push None; | anything -> _push anything in Some (Portal.stanza_open domain) |> push; (* TODO: check this is a good stanza *) let+ _ = Lwt_stream.get stream in stream, push