Class monad is no longer a curiously recurring template
Making use of variadic templates