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

-- 
Семен Тригубенко

Attachment: signature.asc
Description: Digital signature

_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to