
#14885: TH breaks the scoping of quoted default method implementations when spliced -------------------------------------+------------------------------------- Reporter: RyanGlScott | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Template Haskell | Version: 8.2.2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: GHC rejects | Unknown/Multiple valid program | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by RyanGlScott): Strangely, one thing that is //not// broken is good ol' top-level type signatures. This works just fine: {{{#!hs {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TemplateHaskell #-} {-# OPTIONS_GHC -ddump-splices #-} module Bug where f1 :: forall a. a -> a f1 x = (x :: a) $([d| f2 :: forall a. a -> a f2 x = (x :: a) |]) }}} In that case, what secret sauce do top-level functions have that `InstanceSigs` //et al.// do not have? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14885#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler