
#10547: feature request: expanding type synonyms in error messages -------------------------------------+------------------------------------- Reporter: osa1 | Owner: osa1 Type: feature request | Status: new Priority: low | Milestone: 7.12.1 Component: Compiler (Type | Version: checker) | Keywords: Resolution: | Architecture: Operating System: Unknown/Multiple | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Revisions: D1016 -------------------------------------+------------------------------------- Comment (by osa1): Simon, how does this look: I have this program: {{{ module Main where type T5 = T4 type T4 = T3 type T3 = T2 type T2 = T1 type T1 = Int type T a = Int -> Bool -> a -> String f :: T (T3, T5, Int) -> Int f = undefined a :: Int a = f (undefined :: T (T5, T3, Bool)) main = print a }}} and this is the error message: {{{ ➜ t10547 ghc-stage1 Main.hs -fprint-expanded-synonyms [1 of 1] Compiling Main ( Main.hs, Main.o ) Main.hs:15:8: error: Couldn't match type ‘Int’ with ‘Bool’ Expected type: T (T3, T5, Int) Actual type: T (T5, T3, Bool) Type synonyms expanded: Expected type: T (T3, T3, Int) Actual type: T (T3, T3, Bool) In the first argument of ‘f’, namely ‘(undefined :: T (T5, T3, Bool))’ In the expression: f (undefined :: T (T5, T3, Bool)) In an equation for ‘a’: a = f (undefined :: T (T5, T3, Bool)) }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10547#comment:5 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler