class Public : PublicInterface<T> by InternalImpl<Int>()
I believe the answer to the problem itself is given here: