Good to know, thanks. I assume that TcMType.zonkTcTypes is to TcHsType.zonkTcTypeToTypes as TcMType.zonkTcTyVars is to TcHsType.zonkTyBndrs? Also, what exactly is the optimization that ZonkEnv performs in types? And why don't the functions in TcMType make use of this optimization? Ryan S.