well, I don't see this as a bad solution, but it was not the first thing I tried (and therefore I thought a comment was warranted). I started as all other things with `transform(new Transformer[O, U]`