
#8459: Role of TExp -------------------------------+------------------------------------------- Reporter: monoidal | Owner: monoidal Type: bug | Status: new Priority: normal | Milestone: Component: Template | Version: 7.7 Haskell | Keywords: Resolution: | Architecture: Unknown/Multiple Operating System: | Difficulty: Easy (less than 1 hour) Unknown/Multiple | Blocked By: Type of failure: Other | Related Tickets: Test Case: | Blocking: | -------------------------------+------------------------------------------- Comment (by simonpj): Richard is right. Consider {{{ e :: TExp Age e = MkAge 3 foo = $(coerce e) + 4::Int }}} The splice will evaluate to `(MkAge 3)` and you can't add that to `4::Int`. So you can't `coerce` a `(TExp Age)` to a `(TExp Int)`. Nominal! I'll change it, via a role signature in `TH.Syntax`. Simon -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8459#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler