did you consider doing a `Chan` instead, it sounds more appropriate than a `Func` to pass messages around.