Oh well, I found the issue. It was because of my special system. The printed representation of unify variables that point to a point to a point to a symbol got printed as a symbol. I really need to tweak the output to hint if it is a unify variable. And if wingo managed to squeeze in tagging - so much sweeter. Anyway I have implemented Subtypes Parameter types Recursive types ============ Now, the subtypes have been tested a little, the rest remains to be debugged. Also there is a weak key map of functions to types of the object that I use to record type signatures. /Stefan