Work out correctly recursion in MultiGenerics