Hi Romain, Your patch is fine, but since you're asking for advices...
1. Respect 80 chars per line, please. 2. I don't see the point of the method exec in that class. For such a "static" utility you can use a normal function (defined outside of the class). My choice would actually be to pass on_connect and on_disconnect as (unit -> unit) functions, i.e. wrap them in Lang.apply before passing them to the source. Most of the time, the sources don't have to deal with Lang at all, allowing you to nicely separate tasks. Have fun. -- David
