
#16362: Deriving a class via an instance that has a TypeError constraint using standalone deriving fails during compilation. -------------------------------------+------------------------------------- Reporter: j9794 | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.6.3 Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- This bug occurs if I define an instance for a typeclass adding a TypeError constraint on the instance, and then I try to derive that instance using Deriving Via in combination with StandaloneDeriving. This is the shortest example I was able to come up with: {{{ {-# Language DataKinds, UndecidableInstances, StandaloneDeriving, DerivingVia #-} import GHC.TypeLits newtype NotNum a = NotNum a instance (TypeError (Text "Not a num")) => Num (NotNum a) where data Foo = Foo deriving via (NotNum Foo) instance Num Foo }}} In this case, it'll fail in compilation with 'Not a Num'. This only seems to happen when combining deriving via with standalone deriving, because if I derive the class like: {{{ data Foo = Foo deriving Num via (NotNum Foo) }}} It works as expected (doesn't fail with my custom error until I actually try to use a Foo where I should use a Num) -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/16362 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler