
#16074: Hopelessly confusing error involving runtime-reps -------------------------------------+------------------------------------- Reporter: simonpj | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.6.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by simonpj): The reason is that when pretty-printing types, we carefully suppress runtime-rep vars (see `IfaceType.defaultRuntimeRepVars`. But that should only apply to ''quantified'' runtime-rep vars like {{{ ($) :: forall (r :: GHC.Types.RuntimeRep) a (b :: TYPE r). (a -> b) -> a -> b }}} where we want to default `r` to `LiftedRep`, and just show the type {{{ forall a b. (a->b) -> a -> b }}} But in fact `defaultRuntimeRepVars` was also defaulting ''free'' type variables, and that means that the skolems `a` and `b` were being printed as `LiftedRep`. Gah! The fix is probably just to treat free variables differently; I'll try that. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/16074#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler