Hello,
Apologies if my changes caused difficulties with your work---we made the changes to `Typable` to preserve the soundness of the type system, hopefully the new behavior is exactly equivalent to the old in the safe cases.
Could you post an example of the code where the unwanted `Typeable p` constraint appears? It seems entirely reasonable that if you want to solve `Typeable (OUT p o)`, you'll have to provide `Typealbe p`, so I am not seeing the whole picture.
To answer your question about `KnownNat p`---there is no relation between it and `Typeable`. You may think if a `KnownNat x` constraint as just the integer `x`. As it happens, the integer is closely related to the `Typeable` instance for the number, so I think we *could* make it work so that if you have `KnownNat p`, then you can get `Typeable p`, but this has never worked previosly, so perhaps there is another issue.
-Iavor