parsing ghc type errors

Dear Haskell-cafe, When dealing with ghc type errors I often see messages like Couldn't match expected type `ghc-prim:GHC.Types.IO{tc 32I} MyTypeNameHere{tc r1d8}' with actual type `ghc-prim:GHC.Types.IO{tc 32I} MyOtherTypeNameHere{tc r1d8}' Could you please help me understand the meaning of the entities in {} and why are they useful, or point to a source of information about them? Messages where familiar types are referenced are easy to read, but occasionally I get messages of the sort with actual type `[( b0{tv t3p} [tau] :: ghc-prim:GHC.Prim.*{(w) tc 34d} )]' How do I go about reading the type [( b0{tv t3p} [tau] :: ghc-prim:GHC.Prim.*{(w) tc 34d} )] ? E.g., where the names 'b0' and '[tau]' come from? What does '(w)' in '{(w) tc 34d}' mean? Thank you, Semen -- Семен Тригубенко
participants (1)
-
Semen Trygubenko