Remove unnecesary abstract type parameter

turns out scala doesn't explode if you don't hold its hand. Correctly
derives stuff using the bound '<: C[_]' with no need for shenanigans
like pulling out the inner type parameter, which is what was being done
before with 'type inner; final type Out = C[inner]'.