
#11608: Possible type-checker regression in GHC 8.0 when compiling `microlens` -------------------------------------+------------------------------------- Reporter: hvr | Owner: Type: bug | Status: new Priority: highest | Milestone: 8.0.1 Component: Compiler | Version: (Type checker) | 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: -------------------------------------+------------------------------------- I just updated the GHC 8.0 snapshot I was using from 8.0.0.20160214-g977fb8 to 8.0.0.20160218-g23baff7, and suddenly hackage:microlens-0.4.2.0 fails to build with {{{ ... Preprocessing library microlens-0.4.2.0... [1 of 4] Compiling Lens.Micro.Type ( src/Lens/Micro/Type.hs, dist/build/Lens/Micro/Type.o ) [2 of 4] Compiling Lens.Micro.Internal ( src/Lens/Micro/Internal.hs, dist/build/Lens/Micro/Internal.o ) src/Lens/Micro/Internal.hs:184:3: error: • Couldn't match type ‘s’ with ‘g0 a’ ‘s’ is untouchable inside the constraints: (Traversable g, s ~ g a, t ~ g b, Applicative f) bound by the type signature for: each :: (Traversable g, s ~ g a, t ~ g b, Applicative f) => (a -> f b) -> s -> f t at src/Lens/Micro/Internal.hs:184:3-27 • In the ambiguity check for ‘each’ To defer the ambiguity check to use sites, enable AllowAmbiguousTypes When checking the class method: each :: forall s t a b. Each s t a b => Traversal s t a b In the class declaration for ‘Each’ }}} ...is this a regression or a feature? :-) -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11608 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler