I'm guessing that template parameters are a no-go. OTOH can I register
"Andy Little"
following:
template < typename A, template <typename> class Op, typename B, typename Enable = void > struct binary_operation;
(Basically I am not able to compile and wonder if this may be the issue) .
Yes, unfortunately we only support type and integral template parameters,
but not template template parameters :-( Supporting template template
parameters just looks impossible to me, since templates can't be returned
from metafunctions (you can't typedef them).
OTOH, if you are willing to change your interface just a little, and just
use a wrapper over your operation, something like this:
struct plus_identity
{
template