[GHC] #5605: T5267 (uses Arrows) core lint failure

GHC cvs-ghc at haskell.org
Sat Nov 5 17:54:26 CET 2011


#5605: T5267 (uses Arrows) core lint failure
---------------------------------+------------------------------------------
    Reporter:  igloo             |        Owner:              
        Type:  bug               |       Status:  new         
    Priority:  high              |    Milestone:  7.4.1       
   Component:  Compiler          |      Version:  7.3         
    Keywords:                    |     Testcase:              
   Blockedby:                    |   Difficulty:              
          Os:  Unknown/Multiple  |     Blocking:              
Architecture:  Unknown/Multiple  |      Failure:  None/Unknown
---------------------------------+------------------------------------------
 {{{
 =====> T5267(normal) 16 of 16 [0, 0, 0]
 cd . && '/home/ian/ghc/git/ghc/inplace/bin/ghc-stage2' -fforce-recomp
 -dcore-lint -dcmm-lint -dno-debug-output -no-user-package-conf -rtsopts
 -fno-ghci-history  -c T5267.hs    >T5267.comp.stderr 2>&1
 Compile failed (status 256) errors were:
 *** Core Lint errors : in result of Desugar ***
 <no location info>:
     In the expression: T5267.ite_perm
                          @ t_aj2
                          @ GHC.Types.Bool
                          @ t_aj0
                          $dArrowChoice_aj3
                          tA_acz
                          eA_acA
                          (GHC.Desugar.>>>
                             @ t_aj2
                             $dArrow_aiS
                             @ GHC.Types.Bool
                             @ GHC.Types.Bool
                             @ GHC.Types.Bool
                             (Control.Arrow.arr
                                @ t_aj2
                                $dArrow_aiS
                                @ GHC.Types.Bool
                                @ GHC.Types.Bool
                                (\ (ds_dkZ :: GHC.Types.Bool) -> ds_dkZ))
                             (Control.Arrow.returnA @ t_aj2 @
 GHC.Types.Bool $dArrow_aiS))
     Argument value doesn't match argument type:
     Fun type:
         T5267.A t_aj2 GHC.Types.Bool t_aj0
         -> T5267.A t_aj2 GHC.Types.Bool t_aj0
         -> t_aj2 GHC.Types.Bool GHC.Types.Bool
         -> T5267.A t_aj2 GHC.Types.Bool t_aj0
     Arg type: T5267.A t_aj2 a_aiZ t_aj0
     Arg: tA_acz
 *** Offending Program ***
 T5267.unA
   :: forall ((~>_ack) :: * -> * -> *) b_acl c_acm.
      T5267.A (~>_ack) b_acl c_acm -> (~>_ack) b_acl c_acm
 [LclIdX[[RecSel]]]
 T5267.unA =
   \ (@ ~>_adV::* -> * -> *)
     (@ b_adW)
     (@ c_adX)
     (ds_dlq :: T5267.A (~>_adV) b_adW c_adX) ->
     ds_dlq
     `cast` (T5267.NTCo:A <(~>_adV)> <b_adW> <c_adX>
             :: T5267.A (~>_adV) b_adW c_adX ~ (~>_adV) b_adW c_adX)

 T5267.ite
   :: forall ((~>_acn) :: * -> * -> *) env_aco d_acp.
      Control.Arrow.ArrowChoice (~>_acn) =>
      (~>_acn) env_aco GHC.Types.Bool
      -> T5267.A (~>_acn) env_aco d_acp
      -> T5267.A (~>_acn) env_aco d_acp
      -> T5267.A (~>_acn) env_aco d_acp
 [LclIdX]
 T5267.ite =
   \ (@ ~>_ae4::* -> * -> *)
     (@ env_ae5)
     (@ d_ae6)
     ($dArrowChoice_ae7 :: Control.Arrow.ArrowChoice (~>_ae4)) ->
     let {
       $dArrow_ak6 :: Control.Arrow.Arrow (~>_ae4)
       [LclId]
       $dArrow_ak6 =
         Control.Arrow.$p1ArrowChoice @ (~>_ae4) $dArrowChoice_ae7 } in
     \ (iA_acq :: (~>_ae4) env_ae5 GHC.Types.Bool)
       (tA_acr :: T5267.A (~>_ae4) env_ae5 d_ae6)
       (eA_acs :: T5267.A (~>_ae4) env_ae5 d_ae6) ->
       GHC.Base.$
         @ ((~>_ae4) env_ae5 d_ae6)
         @ (T5267.A (~>_ae4) env_ae5 d_ae6)
         (T5267.A @ (~>_ae4) @ env_ae5 @ d_ae6)
         (let {
            ds_dkB
              :: forall b_ae9 c_aea. (b_ae9 -> c_aea) -> (~>_ae4) b_ae9
 c_aea
            [LclId]
            ds_dkB = Control.Arrow.arr @ (~>_ae4) $dArrow_ak6 } in
          let {
            ds_dkC
              :: forall a_aeh b_aei c_aej.
                 (~>_ae4) a_aeh b_aei
                 -> (~>_ae4) b_aei c_aej -> (~>_ae4) a_aeh c_aej
            [LclId]
            ds_dkC = GHC.Desugar.>>> @ (~>_ae4) $dArrow_ak6 } in
          ds_dkC
            @ env_ae5
            @ env_ae5
            @ d_ae6
            (ds_dkB @ env_ae5 @ env_ae5 (\ (env_act :: env_ae5) ->
 env_act))
            (ds_dkC
               @ env_ae5
               @ (env_ae5, GHC.Types.Bool)
               @ d_ae6
               (ds_dkC
                  @ env_ae5
                  @ (env_ae5, env_ae5)
                  @ (env_ae5, GHC.Types.Bool)
                  (ds_dkB
                     @ env_ae5
                     @ (env_ae5, env_ae5)
                     (\ (ds_dkO :: env_ae5) -> (ds_dkO, ds_dkO)))
                  (ds_dkC
                     @ (env_ae5, env_ae5)
                     @ (GHC.Types.Bool, env_ae5)
                     @ (env_ae5, GHC.Types.Bool)
                     (Control.Arrow.first
                        @ (~>_ae4)
                        $dArrow_ak6
                        @ env_ae5
                        @ GHC.Types.Bool
                        @ env_ae5
                        (ds_dkC
                           @ env_ae5
                           @ env_ae5
                           @ GHC.Types.Bool
                           (ds_dkB @ env_ae5 @ env_ae5 (\ (ds_dkM ::
 env_ae5) -> ds_dkM))
                           iA_acq))
                     (ds_dkB
                        @ (GHC.Types.Bool, env_ae5)
                        @ (env_ae5, GHC.Types.Bool)
                        (\ (ds_dkR :: (GHC.Types.Bool, env_ae5)) ->
                           case ds_dkR of _ { (i_acu, ds_dkP) -> (ds_dkP,
 i_acu) }))))
               (ds_dkC
                  @ (env_ae5, GHC.Types.Bool)
                  @ (Data.Either.Either env_ae5 env_ae5)
                  @ d_ae6
                  (ds_dkB
                     @ (env_ae5, GHC.Types.Bool)
                     @ (Data.Either.Either env_ae5 env_ae5)
                     (\ (ds_dkK :: (env_ae5, GHC.Types.Bool)) ->
                        case ds_dkK of _ { (env_act, i_acu) ->
                        case i_acu of _ {
                          GHC.Types.False -> Data.Either.Right @ env_ae5 @
 env_ae5 env_act;
                          GHC.Types.True -> Data.Either.Left @ env_ae5 @
 env_ae5 env_act
                        }
                        }))
                  (Control.Arrow.|||
                     @ (~>_ae4)
                     $dArrowChoice_ae7
                     @ env_ae5
                     @ d_ae6
                     @ env_ae5
                     (ds_dkC
                        @ env_ae5
                        @ env_ae5
                        @ d_ae6
                        (ds_dkB @ env_ae5 @ env_ae5 (\ (ds_dkG :: env_ae5)
 -> ds_dkG))
                        (T5267.unA @ (~>_ae4) @ env_ae5 @ d_ae6 tA_acr))
                     (ds_dkC
                        @ env_ae5
                        @ env_ae5
                        @ d_ae6
                        (ds_dkB @ env_ae5 @ env_ae5 (\ (ds_dkI :: env_ae5)
 -> ds_dkI))
                        (T5267.unA @ (~>_ae4) @ env_ae5 @ d_ae6
 eA_acs))))))

 T5267.ite_perm
   :: forall ((~>_aip) :: * -> * -> *) env_aiq d_air.
      Control.Arrow.ArrowChoice (~>_aip) =>
      T5267.A (~>_aip) env_aiq d_air
      -> T5267.A (~>_aip) env_aiq d_air
      -> (~>_aip) env_aiq GHC.Types.Bool
      -> T5267.A (~>_aip) env_aiq d_air
 [LclIdX]
 T5267.ite_perm =
   \ (@ ~>_aiv::* -> * -> *)
     (@ env_aiw)
     (@ d_aix)
     ($dArrowChoice_aiy :: Control.Arrow.ArrowChoice (~>_aiv))
     (tA_acv :: T5267.A (~>_aiv) env_aiw d_aix)
     (eA_acw :: T5267.A (~>_aiv) env_aiw d_aix)
     (i_acx :: (~>_aiv) env_aiw GHC.Types.Bool) ->
     T5267.ite
       @ (~>_aiv) @ env_aiw @ d_aix $dArrowChoice_aiy i_acx tA_acv eA_acw

 $c._ak2
   :: forall ((~>_ack) :: * -> * -> *).
      Control.Category.Category (~>_ack) =>
      forall b_aky c_akz a_akA.
      T5267.A (~>_ack) b_aky c_akz
      -> T5267.A (~>_ack) a_akA b_aky -> T5267.A (~>_ack) a_akA c_akz
 [LclId]
 $c._ak2 =
   \ (@ ~>_ack::* -> * -> *)
     ($dCategory_ajX :: Control.Category.Category (~>_ack)) ->
     (Control.Category.. @ (~>_ack) $dCategory_ajX)
     `cast` (forall b_aky c_akz a_akA.
             Sym (T5267.NTCo:A <(~>_ack)>) <b_aky> <c_akz>
             -> Sym (T5267.NTCo:A <(~>_ack)>) <a_akA> <b_aky>
             -> Sym (T5267.NTCo:A <(~>_ack)>) <a_akA> <c_akz>
             :: (forall b_aky c_akz a_akA.
                 (~>_ack) b_aky c_akz
                 -> (~>_ack) a_akA b_aky -> (~>_ack) a_akA c_akz)
                  ~
                (forall b_aky c_akz a_akA.
                 T5267.A (~>_ack) b_aky c_akz
                 -> T5267.A (~>_ack) a_akA b_aky -> T5267.A (~>_ack) a_akA
 c_akz))

 $cid_ak0
   :: forall ((~>_ack) :: * -> * -> *).
      Control.Category.Category (~>_ack) =>
      forall a_akx. T5267.A (~>_ack) a_akx a_akx
 [LclId]
 $cid_ak0 =
   \ (@ ~>_ack::* -> * -> *)
     ($dCategory_ajX :: Control.Category.Category (~>_ack)) ->
     (Control.Category.id @ (~>_ack) $dCategory_ajX)
     `cast` (forall a_akx. Sym (T5267.NTCo:A <(~>_ack)>) <a_akx> <a_akx>
             :: (forall a_akx. (~>_ack) a_akx a_akx)
                  ~
                (forall a_akx. T5267.A (~>_ack) a_akx a_akx))

 T5267.$fCategoryA [InlPrag=[ALWAYS] CONLIKE]
   :: forall ((~>_ack) :: * -> * -> *).
      Control.Category.Category (~>_ack) =>
      Control.Category.Category (T5267.A (~>_ack))
 [LclIdX[DFunId],
  Unf=DFun(arity=2) Control.Category.D:Category [$cid_ak0, $c._ak2]]
 T5267.$fCategoryA =
   \ (@ ~>_ack::* -> * -> *)
     ($dCategory_ajX :: Control.Category.Category (~>_ack)) ->
     Control.Category.D:Category
       @ (T5267.A (~>_ack))
       ($cid_ak0 @ (~>_ack) $dCategory_ajX)
       ($c._ak2 @ (~>_ack) $dCategory_ajX)

 $c&&&_ajU
   :: forall ((~>_ack) :: * -> * -> *).
      Control.Arrow.Arrow (~>_ack) =>
      forall b_aku c_akv c'_akw.
      T5267.A (~>_ack) b_aku c_akv
      -> T5267.A (~>_ack) b_aku c'_akw
      -> T5267.A (~>_ack) b_aku (c_akv, c'_akw)
 [LclId]
 $c&&&_ajU =
   \ (@ ~>_ack::* -> * -> *)
     ($dArrow_ajG :: Control.Arrow.Arrow (~>_ack)) ->
     (Control.Arrow.&&& @ (~>_ack) $dArrow_ajG)
     `cast` (forall b_aku c_akv c'_akw.
             Sym (T5267.NTCo:A <(~>_ack)>) <b_aku> <c_akv>
             -> Sym (T5267.NTCo:A <(~>_ack)>) <b_aku> <c'_akw>
             -> Sym (T5267.NTCo:A <(~>_ack)>) <b_aku> <(c_akv, c'_akw)>
             :: (forall b_aku c_akv c'_akw.
                 (~>_ack) b_aku c_akv
                 -> (~>_ack) b_aku c'_akw -> (~>_ack) b_aku (c_akv,
 c'_akw))
                  ~
                (forall b_aku c_akv c'_akw.
                 T5267.A (~>_ack) b_aku c_akv
                 -> T5267.A (~>_ack) b_aku c'_akw
                 -> T5267.A (~>_ack) b_aku (c_akv, c'_akw)))

 $c***_ajS
   :: forall ((~>_ack) :: * -> * -> *).
      Control.Arrow.Arrow (~>_ack) =>
      forall b_akq c_akr b'_aks c'_akt.
      T5267.A (~>_ack) b_akq c_akr
      -> T5267.A (~>_ack) b'_aks c'_akt
      -> T5267.A (~>_ack) (b_akq, b'_aks) (c_akr, c'_akt)
 [LclId]
 $c***_ajS =
   \ (@ ~>_ack::* -> * -> *)
     ($dArrow_ajG :: Control.Arrow.Arrow (~>_ack)) ->
     (Control.Arrow.*** @ (~>_ack) $dArrow_ajG)
     `cast` (forall b_akq c_akr b'_aks c'_akt.
             Sym (T5267.NTCo:A <(~>_ack)>) <b_akq> <c_akr>
             -> Sym (T5267.NTCo:A <(~>_ack)>) <b'_aks> <c'_akt>
             -> Sym (T5267.NTCo:A <(~>_ack)>) <(b_akq, b'_aks)> <(c_akr,
                                                                  c'_akt)>
             :: (forall b_akq c_akr b'_aks c'_akt.
                 (~>_ack) b_akq c_akr
                 -> (~>_ack) b'_aks c'_akt
                 -> (~>_ack) (b_akq, b'_aks) (c_akr, c'_akt))
                  ~
                (forall b_akq c_akr b'_aks c'_akt.
                 T5267.A (~>_ack) b_akq c_akr
                 -> T5267.A (~>_ack) b'_aks c'_akt
                 -> T5267.A (~>_ack) (b_akq, b'_aks) (c_akr, c'_akt)))

 $csecond_ajQ
   :: forall ((~>_ack) :: * -> * -> *).
      Control.Arrow.Arrow (~>_ack) =>
      forall b_akn c_ako d_akp.
      T5267.A (~>_ack) b_akn c_ako
      -> T5267.A (~>_ack) (d_akp, b_akn) (d_akp, c_ako)
 [LclId]
 $csecond_ajQ =
   \ (@ ~>_ack::* -> * -> *)
     ($dArrow_ajG :: Control.Arrow.Arrow (~>_ack)) ->
     (Control.Arrow.second @ (~>_ack) $dArrow_ajG)
     `cast` (forall b_akn c_ako d_akp.
             Sym (T5267.NTCo:A <(~>_ack)>) <b_akn> <c_ako>
             -> Sym (T5267.NTCo:A <(~>_ack)>) <(d_akp, b_akn)> <(d_akp,
 c_ako)>
             :: (forall b_akn c_ako d_akp.
                 (~>_ack) b_akn c_ako -> (~>_ack) (d_akp, b_akn) (d_akp,
 c_ako))
                  ~
                (forall b_akn c_ako d_akp.
                 T5267.A (~>_ack) b_akn c_ako
                 -> T5267.A (~>_ack) (d_akp, b_akn) (d_akp, c_ako)))

 $cfirst_ajO
   :: forall ((~>_ack) :: * -> * -> *).
      Control.Arrow.Arrow (~>_ack) =>
      forall b_ael c_aem d_aen.
      T5267.A (~>_ack) b_ael c_aem
      -> T5267.A (~>_ack) (b_ael, d_aen) (c_aem, d_aen)
 [LclId]
 $cfirst_ajO =
   \ (@ ~>_ack::* -> * -> *)
     ($dArrow_ajG :: Control.Arrow.Arrow (~>_ack)) ->
     (Control.Arrow.first @ (~>_ack) $dArrow_ajG)
     `cast` (forall b_ael c_aem d_aen.
             Sym (T5267.NTCo:A <(~>_ack)>) <b_ael> <c_aem>
             -> Sym (T5267.NTCo:A <(~>_ack)>) <(b_ael, d_aen)> <(c_aem,
 d_aen)>
             :: (forall b_ael c_aem d_aen.
                 (~>_ack) b_ael c_aem -> (~>_ack) (b_ael, d_aen) (c_aem,
 d_aen))
                  ~
                (forall b_ael c_aem d_aen.
                 T5267.A (~>_ack) b_ael c_aem
                 -> T5267.A (~>_ack) (b_ael, d_aen) (c_aem, d_aen)))

 $carr_ajM
   :: forall ((~>_ack) :: * -> * -> *).
      Control.Arrow.Arrow (~>_ack) =>
      forall b_ae9 c_aea.
      (b_ae9 -> c_aea) -> T5267.A (~>_ack) b_ae9 c_aea
 [LclId]
 $carr_ajM =
   \ (@ ~>_ack::* -> * -> *)
     ($dArrow_ajG :: Control.Arrow.Arrow (~>_ack)) ->
     (Control.Arrow.arr @ (~>_ack) $dArrow_ajG)
     `cast` (forall b_ae9 c_aea.
             <b_ae9 -> c_aea> -> Sym (T5267.NTCo:A <(~>_ack)>) <b_ae9>
 <c_aea>
             :: (forall b_ae9 c_aea. (b_ae9 -> c_aea) -> (~>_ack) b_ae9
 c_aea)
                  ~
                (forall b_ae9 c_aea.
                 (b_ae9 -> c_aea) -> T5267.A (~>_ack) b_ae9 c_aea))

 $c$p1Arrow_ajJ
   :: forall ((~>_ack) :: * -> * -> *).
      Control.Arrow.Arrow (~>_ack) =>
      Control.Category.Category (T5267.A (~>_ack))
 [LclId]
 $c$p1Arrow_ajJ =
   \ (@ ~>_ack::* -> * -> *)
     ($dArrow_ajG :: Control.Arrow.Arrow (~>_ack)) ->
     T5267.$fCategoryA
       @ (~>_ack) (Control.Arrow.$p1Arrow @ (~>_ack) $dArrow_ajG)

 T5267.$fArrowA [InlPrag=[ALWAYS] CONLIKE]
   :: forall ((~>_ack) :: * -> * -> *).
      Control.Arrow.Arrow (~>_ack) =>
      Control.Arrow.Arrow (T5267.A (~>_ack))
 [LclIdX[DFunId],
  Unf=DFun(arity=2) Control.Arrow.D:Arrow [$c$p1Arrow_ajJ, $carr_ajM,
                                           $cfirst_ajO, $csecond_ajQ,
 $c***_ajS, $c&&&_ajU]]
 T5267.$fArrowA =
   \ (@ ~>_ack::* -> * -> *)
     ($dArrow_ajG :: Control.Arrow.Arrow (~>_ack)) ->
     Control.Arrow.D:Arrow
       @ (T5267.A (~>_ack))
       ($c$p1Arrow_ajJ @ (~>_ack) $dArrow_ajG)
       ($carr_ajM @ (~>_ack) $dArrow_ajG)
       ($cfirst_ajO @ (~>_ack) $dArrow_ajG)
       ($csecond_ajQ @ (~>_ack) $dArrow_ajG)
       ($c***_ajS @ (~>_ack) $dArrow_ajG)
       ($c&&&_ajU @ (~>_ack) $dArrow_ajG)

 T5267.ite'
   :: forall a_aiF t_aiT t_aiU (t_aiV :: * -> * -> *).
      Control.Arrow.ArrowChoice t_aiV =>
      T5267.A t_aiV t_aiU GHC.Types.Bool
      -> T5267.A t_aiV a_aiF t_aiT
      -> T5267.A t_aiV a_aiF t_aiT
      -> T5267.A t_aiV t_aiU t_aiT
 [LclIdX]
 T5267.ite' =
   \ (@ a_aiZ)
     (@ t_aj0)
     (@ t_aj1)
     (@ t_aj2::* -> * -> *)
     ($dArrowChoice_aj3 :: Control.Arrow.ArrowChoice t_aj2) ->
     let {
       $dArrow_aiS :: Control.Arrow.Arrow t_aj2
       [LclId]
       $dArrow_aiS =
         Control.Arrow.$p1ArrowChoice @ t_aj2 $dArrowChoice_aj3 } in
     let {
       $dArrow_aiP :: Control.Arrow.Arrow (T5267.A t_aj2)
       [LclId]
       $dArrow_aiP = T5267.$fArrowA @ t_aj2 $dArrow_aiS } in
     \ (cA_acy :: T5267.A t_aj2 t_aj1 GHC.Types.Bool)
       (tA_acz :: T5267.A t_aj2 a_aiZ t_aj0)
       (eA_acA :: T5267.A t_aj2 a_aiZ t_aj0) ->
       let {
         ds_dkS
           :: forall b_ae9 c_aea.
              (b_ae9 -> c_aea) -> T5267.A t_aj2 b_ae9 c_aea
         [LclId]
         ds_dkS = Control.Arrow.arr @ (T5267.A t_aj2) $dArrow_aiP } in
       let {
         ds_dkT
           :: forall a_aeh b_aei c_aej.
              T5267.A t_aj2 a_aeh b_aei
              -> T5267.A t_aj2 b_aei c_aej -> T5267.A t_aj2 a_aeh c_aej
         [LclId]
         ds_dkT = GHC.Desugar.>>> @ (T5267.A t_aj2) $dArrow_aiP } in
       ds_dkT
         @ t_aj1
         @ t_aj1
         @ t_aj0
         (ds_dkS @ t_aj1 @ t_aj1 (\ (x_acB :: t_aj1) -> x_acB))
         (ds_dkT
            @ t_aj1
            @ GHC.Types.Bool
            @ t_aj0
            (ds_dkT
               @ t_aj1
               @ (t_aj1, ())
               @ GHC.Types.Bool
               (ds_dkS
                  @ t_aj1
                  @ (t_aj1, ())
                  (\ (ds_dl5 :: t_aj1) -> (ds_dl5, GHC.Tuple.())))
               (ds_dkT
                  @ (t_aj1, ())
                  @ (GHC.Types.Bool, ())
                  @ GHC.Types.Bool
                  (Control.Arrow.first
                     @ (T5267.A t_aj2)
                     $dArrow_aiP
                     @ t_aj1
                     @ GHC.Types.Bool
                     @ ()
                     (ds_dkT
                        @ t_aj1
                        @ t_aj1
                        @ GHC.Types.Bool
                        (ds_dkS @ t_aj1 @ t_aj1 (\ (ds_dl3 :: t_aj1) ->
 ds_dl3))
                        cA_acy))
                  (ds_dkS
                     @ (GHC.Types.Bool, ())
                     @ GHC.Types.Bool
                     (\ (ds_dl8 :: (GHC.Types.Bool, ())) ->
                        case ds_dl8 of _ { (c_acC, ds_dl6) ->
                        case ds_dl6 of _ { () -> c_acC }
                        }))))
            (T5267.ite_perm
               @ t_aj2
               @ GHC.Types.Bool
               @ t_aj0
               $dArrowChoice_aj3
               tA_acz
               eA_acA
               (GHC.Desugar.>>>
                  @ t_aj2
                  $dArrow_aiS
                  @ GHC.Types.Bool
                  @ GHC.Types.Bool
                  @ GHC.Types.Bool
                  (Control.Arrow.arr
                     @ t_aj2
                     $dArrow_aiS
                     @ GHC.Types.Bool
                     @ GHC.Types.Bool
                     (\ (ds_dkZ :: GHC.Types.Bool) -> ds_dkZ))
                  (Control.Arrow.returnA @ t_aj2 @ GHC.Types.Bool
 $dArrow_aiS))))

 T5267.ite''
   :: forall a_aje t_ajp t_ajq (t_ajr :: * -> * -> *).
      Control.Arrow.ArrowChoice t_ajr =>
      T5267.A t_ajr t_ajq GHC.Types.Bool
      -> T5267.A t_ajr a_aje t_ajp
      -> T5267.A t_ajr a_aje t_ajp
      -> T5267.A t_ajr t_ajq t_ajp
 [LclIdX]
 T5267.ite'' =
   \ (@ a_ajv)
     (@ t_ajw)
     (@ t_ajx)
     (@ t_ajy::* -> * -> *)
     ($dArrowChoice_ajz :: Control.Arrow.ArrowChoice t_ajy) ->
     let {
       $dArrow_ajo :: Control.Arrow.Arrow t_ajy
       [LclId]
       $dArrow_ajo =
         Control.Arrow.$p1ArrowChoice @ t_ajy $dArrowChoice_ajz } in
     let {
       $dArrow_ajl :: Control.Arrow.Arrow (T5267.A t_ajy)
       [LclId]
       $dArrow_ajl = T5267.$fArrowA @ t_ajy $dArrow_ajo } in
     \ (cA_acD :: T5267.A t_ajy t_ajx GHC.Types.Bool)
       (tA_acE :: T5267.A t_ajy a_ajv t_ajw)
       (eA_acF :: T5267.A t_ajy a_ajv t_ajw) ->
       let {
         ds_dl9
           :: forall b_ae9 c_aea.
              (b_ae9 -> c_aea) -> T5267.A t_ajy b_ae9 c_aea
         [LclId]
         ds_dl9 = Control.Arrow.arr @ (T5267.A t_ajy) $dArrow_ajl } in
       let {
         ds_dla
           :: forall a_aeh b_aei c_aej.
              T5267.A t_ajy a_aeh b_aei
              -> T5267.A t_ajy b_aei c_aej -> T5267.A t_ajy a_aeh c_aej
         [LclId]
         ds_dla = GHC.Desugar.>>> @ (T5267.A t_ajy) $dArrow_ajl } in
       ds_dla
         @ t_ajx
         @ t_ajx
         @ t_ajw
         (ds_dl9 @ t_ajx @ t_ajx (\ (x_acI :: t_ajx) -> x_acI))
         (ds_dla
            @ t_ajx
            @ GHC.Types.Bool
            @ t_ajw
            (ds_dla
               @ t_ajx
               @ (t_ajx, ())
               @ GHC.Types.Bool
               (ds_dl9
                  @ t_ajx
                  @ (t_ajx, ())
                  (\ (ds_dlm :: t_ajx) -> (ds_dlm, GHC.Tuple.())))
               (ds_dla
                  @ (t_ajx, ())
                  @ (GHC.Types.Bool, ())
                  @ GHC.Types.Bool
                  (Control.Arrow.first
                     @ (T5267.A t_ajy)
                     $dArrow_ajl
                     @ t_ajx
                     @ GHC.Types.Bool
                     @ ()
                     (ds_dla
                        @ t_ajx
                        @ t_ajx
                        @ GHC.Types.Bool
                        (ds_dl9 @ t_ajx @ t_ajx (\ (ds_dlk :: t_ajx) ->
 ds_dlk))
                        cA_acD))
                  (ds_dl9
                     @ (GHC.Types.Bool, ())
                     @ GHC.Types.Bool
                     (\ (ds_dlp :: (GHC.Types.Bool, ())) ->
                        case ds_dlp of _ { (c_acJ, ds_dln) ->
                        case ds_dln of _ { () -> c_acJ }
                        }))))
            ((\ (i_acH :: t_ajy a_ajv GHC.Types.Bool) ->
                T5267.ite
                  @ t_ajy @ a_ajv @ t_ajw $dArrowChoice_ajz i_acH tA_acE
 eA_acF)
               (GHC.Desugar.>>>
                  @ t_ajy
                  $dArrow_ajo
                  @ GHC.Types.Bool
                  @ GHC.Types.Bool
                  @ GHC.Types.Bool
                  (Control.Arrow.arr
                     @ t_ajy
                     $dArrow_ajo
                     @ GHC.Types.Bool
                     @ GHC.Types.Bool
                     (\ (ds_dlg :: GHC.Types.Bool) -> ds_dlg))
                  (Control.Arrow.returnA @ t_ajy @ GHC.Types.Bool
 $dArrow_ajo))))

 *** End of Offense ***
 }}}

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5605>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler



More information about the Glasgow-haskell-bugs mailing list