[GHC] #11608: Possible type-checker regression in GHC 8.0 when compiling `microlens`

GHC ghc-devs at haskell.org
Fri Feb 19 11:09:04 UTC 2016


#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


More information about the ghc-tickets mailing list