#2728: T2627 profasm/profc: Kinds don't match in type application
---------------------------------+------------------------------------------
    Reporter:  igloo             |       Owner:                  
        Type:  bug               |      Status:  new             
    Priority:  normal            |   Milestone:  6.10.1          
   Component:  Compiler          |     Version:  6.10.1          
    Severity:  normal            |    Keywords:                  
  Difficulty:  Unknown           |    Testcase:  T2627           
Architecture:  Unknown/Multiple  |          Os:  Unknown/Multiple
---------------------------------+------------------------------------------
 T2627 profasm/profc is getting a lint failure:
 {{{
 =====> T2627(profasm)
 cd ./indexed-types/should_compile && '/64playpen/buildbot/x86_64-linux-
 stable/build/ghc/stage2-inplace/ghc' -fforce-recomp -dcore-lint -dcmm-lint
 -Dx86_64_unknown_linux  -dno-debug-output -c T2627.hs -O -prof -auto-all
 -fasm   >T2627.comp.stderr 2>&1
 Compile failed (status 256) errors were:
 *** Core Lint Errors: in result of Worker Wrapper binds ***
 <no location info>:
     In the expression: (\ (@ a_akP)
                           (@ b_akQ)
                           (@ $coDual_alQ)
                           (@ $coDual_alR)
                           (ds_dmA [ALWAYS Just S] :: T2627.Comm a_akP)
                           (ds_dmB [ALWAYS Just S] :: T2627.Comm b_akQ) ->
                           __scc {conn main:T2627}
                           case ds_dmA of wild_B1 [ALWAYS Just A] {
                             T2627.Rd @ a_akW @ b_akX @ $co$_alf k_ag6
 [ALWAYS Just C(S)] ->
                               case ds_dmB of wild_Xp [ALWAYS Just A] {
                                 __DEFAULT -> fail_sn8;
                                 T2627.Wr @ a_akY
                                          @ b_akZ
                                          @ $co$_al5
                                          a_ag8 [ALWAYS Just L]
                                          r_aga [ALWAYS Just S] ->
                                   T2627.conn
                                     @ b_akX
                                     @ b_akZ
                                     @ (trans
                                          (trans
                                             (T2627.Dual b_akX)
                                             (trans
                                                (trans
                                                   (T2627.Dual b_akX)
                                                   (trans
                                                      (trans
                                                         (T2627.Dual b_akX)
                                                         (trans
                                                            (trans
                                                               (T2627.Dual
                                                                  (right
                                                                     (trans
 (sym $co$_alf)
 (trans
 (trans
 (sym $coDual_alR)
 (T2627.Dual $co$_al5))
 (a_akY
 T2627.:CoF:R1Dual b_akZ)))))
                                                               (T2627.Dual
 (T2627.Dual b_akZ)))
                                                            (trans
                                                               (trans
 (T2627.Dual (T2627.Dual b_akZ))
                                                                  (trans
                                                                     (right
 (trans
 (trans
 (sym
 (a_akW
 T2627.:CoF:R2Dual T2627.Dual
 b_akZ))
 (trans
 (T2627.Dual
 (T2627.R
 (right
 (left
 (trans
 (sym
 $co$_alf)
 (trans
 (trans
 (sym
 $coDual_alR)
 (T2627.Dual
 $co$_al5))
 (a_akY
 T2627.:CoF:R1Dual b_akZ)))))
 (T2627.Dual
 b_akZ)))
 (trans
 (T2627.Dual
 (trans
 (sym
 (a_akY
 T2627.:CoF:R1Dual b_akZ))
 (trans
 (T2627.Dual
 (sym
 $co$_al5))
 $coDual_alR)))
 $coDual_alQ)))
 $co$_al5))
 b_akZ))
                                                               b_akZ)))
                                                      b_akZ))
                                                b_akZ))
                                          b_akZ)
                                     @ (trans
                                          (trans
                                             (T2627.Dual b_akZ)
                                             (trans
                                                (trans
                                                   (T2627.Dual b_akZ)
                                                   (trans
                                                      (trans
                                                         (T2627.Dual b_akZ)
                                                         (trans
                                                            (T2627.Dual
 b_akZ)
                                                            (trans
                                                               (trans
 (T2627.Dual b_akZ)
                                                                  (trans
                                                                     (right
 (trans
 (trans
 (sym
 (a_akY
 T2627.:CoF:R1Dual b_akZ))
 (trans
 (T2627.Dual
 (sym $co$_al5))
 $coDual_alR))
 $co$_alf))
 b_akX))
                                                               b_akX)))
                                                      b_akX))
                                                b_akX))
                                          b_akX)
                                     (k_ag6
                                        (a_ag8
                                         `cast` (trans
                                                   (trans
                                                      a_akY
                                                      (trans
                                                         (trans
                                                            a_akY
                                                            (trans
                                                               (trans
                                                                  a_akY
                                                                  (trans
                                                                     (trans
 a_akY
 (trans
 (right
 (left
 (trans
 (trans
 (sym
 (a_akY
 T2627.:CoF:R1Dual b_akZ))
 (trans
 (T2627.Dual
 (sym
 $co$_al5))
 $coDual_alR))
 $co$_alf)))
 a_akW))
 a_akW))
                                                               a_akW))
                                                         a_akW))
                                                   a_akW
                                                 :: a_akY ~ a_akW)))
                                     r_aga
                               };
                             T2627.Wr @ a_all
                                      @ b_alm
                                      @ $co$_alI
                                      a_agc [ALWAYS Just L]
                                      r_age [ALWAYS Just S] ->
                               case ds_dmB of wild_Xq [ALWAYS Just A] {
                                 __DEFAULT -> fail_sn8;
                                 T2627.Rd @ a_aln @ b_alo @ $co$_alu k_agg
 [ALWAYS Just C(S)] ->
                                   T2627.conn
                                     @ b_alm
                                     @ b_alo
                                     @ (trans
                                          (trans
                                             (T2627.Dual b_alm)
                                             (trans
                                                (trans
                                                   (T2627.Dual b_alm)
                                                   (trans
                                                      (trans
                                                         (T2627.Dual b_alm)
                                                         (trans
                                                            (trans
                                                               (T2627.Dual
                                                                  (right
                                                                     (trans
 (sym $co$_alI)
 (trans
 (trans
 (sym $coDual_alR)
 (T2627.Dual $co$_alu))
 (a_aln
 T2627.:CoF:R2Dual b_alo)))))
                                                               (T2627.Dual
 (T2627.Dual b_alo)))
                                                            (trans
                                                               (trans
 (T2627.Dual (T2627.Dual b_alo))
                                                                  (trans
                                                                     (right
 (trans
 (trans
 (sym
 (a_all
 T2627.:CoF:R1Dual T2627.Dual
 b_alo))
 (trans
 (T2627.Dual
 (T2627.W
 (right
 (left
 (trans
 (sym
 $co$_alI)
 (trans
 (trans
 (sym
 $coDual_alR)
 (T2627.Dual
 $co$_alu))
 (a_aln
 T2627.:CoF:R2Dual b_alo)))))
 (T2627.Dual
 b_alo)))
 (trans
 (T2627.Dual
 (trans
 (sym
 (a_aln
 T2627.:CoF:R2Dual b_alo))
 (trans
 (T2627.Dual
 (sym
 $co$_alu))
 $coDual_alR)))
 $coDual_alQ)))
 $co$_alu))
 b_alo))
                                                               b_alo)))
                                                      b_alo))
                                                b_alo))
                                          b_alo)
                                     @ (trans
                                          (trans
                                             (T2627.Dual b_alo)
                                             (trans
                                                (trans
                                                   (T2627.Dual b_alo)
                                                   (trans
                                                      (trans
                                                         (T2627.Dual b_alo)
                                                         (trans
                                                            (T2627.Dual
 b_alo)
                                                            (trans
                                                               (trans
 (T2627.Dual b_alo)
                                                                  (trans
                                                                     (right
 (trans
 (trans
 (sym
 (a_aln
 T2627.:CoF:R2Dual b_alo))
 (trans
 (T2627.Dual
 (sym $co$_alu))
 $coDual_alR))
 $co$_alI))
 b_alm))
                                                               b_alm)))
                                                      b_alm))
                                                b_alm))
                                          b_alm)
                                     r_age
                                     (k_agg
                                        (a_agc
                                         `cast` (trans
                                                   (trans
                                                      a_all
                                                      (sym
                                                         (sym
                                                            (trans
                                                               (trans
                                                                  a_all
                                                                  (sym
                                                                     (sym
 (trans
 (trans
 a_all
 (sym
 (sym
 (trans
 (trans
 a_all
 (sym
 (trans
 (right
 (left
 (trans
 (trans
 (sym
 (a_aln
 T2627.:CoF:R2Dual b_alo))
 (trans
 (T2627.Dual
 (sym
 $co$_alu))
 $coDual_alR))
 $co$_alI)))
 (sym
 a_all))))
 a_aln))))
 a_aln))))
                                                               a_aln))))
                                                   a_aln
                                                 :: a_all ~ a_aln)))
                               };
                             T2627.Fin @ $co$_akV x_ag2 [ALWAYS Just L] ->
                               case ds_dmB of wild_Xn [ALWAYS Just A] {
                                 __DEFAULT -> fail_sn8;
                                 T2627.Fin @ $co$_akU y_ag4 [ALWAYS Just L]
 -> (x_ag2, y_ag4)
                               }
                           })
                          @ a_afZ @ b_ag0 @ co_wild_B1
     Kinds don't match in type application:
     Type variable: $coDual_alQ :: T2627.Dual a_afZ ~ b_ag0
     Arg type: co_wild_Xb :: T2627.Dual b_ag0 ~ a_afZ
 *** Offending Program ***
 T2627.$WRd :: forall a_afH b_afI.
               (a_afH -> T2627.Comm b_afI) -> T2627.Comm (T2627.R a_afH
 b_afI)
 [DataConWrapper]
 [Arity 1
  NoCafRefs
  Str: DmdType L]
 T2627.$WRd =
   __inline_me (\ (@ a_afH)
                  (@ b_afI)
                  (tpl_B1 [ALWAYS Just L] :: a_afH -> T2627.Comm b_afI) ->
                  T2627.Rd
                    @ (T2627.R a_afH b_afI)
                    @ a_afH
                    @ b_afI
                    @ (T2627.R a_afH b_afI)
                    tpl_B1)

 T2627.$WWr :: forall a_afK b_afL.
               a_afK -> T2627.Comm b_afL -> T2627.Comm (T2627.W a_afK
 b_afL)
 [DataConWrapper]
 [Arity 2
  NoCafRefs
  Str: DmdType LL]
 T2627.$WWr =
   __inline_me (\ (@ a_afK)
                  (@ b_afL)
                  (tpl_B1 [ALWAYS Just L] :: a_afK)
                  (tpl_B2 [ALWAYS Just L] :: T2627.Comm b_afL) ->
                  T2627.Wr
                    @ (T2627.W a_afK b_afL)
                    @ a_afK
                    @ b_afL
                    @ (T2627.W a_afK b_afL)
                    tpl_B1
                    tpl_B2)

 T2627.$WFin :: GHC.Types.Int -> T2627.Comm T2627.Z
 [DataConWrapper]
 [Arity 1
  NoCafRefs
  Str: DmdType L]
 T2627.$WFin = __inline_me (T2627.Fin @ T2627.Z @ T2627.Z)

 fail_sn8 :: (GHC.Types.Int, GHC.Types.Int)
 [Str: DmdType b]
 fail_sn8 =
   __scc {conn main:T2627 !}
   Control.Exception.Base.patError
     @ (GHC.Types.Int, GHC.Types.Int)
     "T2627.hs:(20,0)-(22,34)|function conn"

 Rec {
 $wconn_snA :: forall a_afZ b_ag0.
               (T2627.Dual a_afZ ~ b_ag0, T2627.Dual b_ag0 ~ a_afZ) =>
               T2627.Comm a_afZ
               -> T2627.Comm b_ag0
               -> (# GHC.Types.Int, GHC.Types.Int #)
 [Arity 2
  Str: DmdType SS]
 $wconn_snA =
   \ (@ a_afZ)
     (@ b_ag0)
     (@ co_wild_B1)
     (@ co_wild_B1)
     (w_snv [ALWAYS Just S] :: T2627.Comm a_afZ)
     (w_snw [ALWAYS Just S] :: T2627.Comm b_ag0) ->
     case (\ (@ a_akP)
             (@ b_akQ)
             (@ $coDual_alQ)
             (@ $coDual_alR)
             (ds_dmA [ALWAYS Just S] :: T2627.Comm a_akP)
             (ds_dmB [ALWAYS Just S] :: T2627.Comm b_akQ) ->
             __scc {conn main:T2627}
             case ds_dmA of wild_B1 [ALWAYS Just A] {
               T2627.Rd @ a_akW @ b_akX @ $co$_alf k_ag6 [ALWAYS Just C(S)]
 ->
                 case ds_dmB of wild_Xp [ALWAYS Just A] {
                   __DEFAULT -> fail_sn8;
                   T2627.Wr @ a_akY
                            @ b_akZ
                            @ $co$_al5
                            a_ag8 [ALWAYS Just L]
                            r_aga [ALWAYS Just S] ->
                     T2627.conn
                       @ b_akX
                       @ b_akZ
                       @ (trans
                            (trans
                               (T2627.Dual b_akX)
                               (trans
                                  (trans
                                     (T2627.Dual b_akX)
                                     (trans
                                        (trans
                                           (T2627.Dual b_akX)
                                           (trans
                                              (trans
                                                 (T2627.Dual
                                                    (right
                                                       (trans
                                                          (sym $co$_alf)
                                                          (trans
                                                             (trans
                                                                (sym
 $coDual_alR)
                                                                (T2627.Dual
 $co$_al5))
                                                             (a_akY
 T2627.:CoF:R1Dual b_akZ)))))
                                                 (T2627.Dual (T2627.Dual
 b_akZ)))
                                              (trans
                                                 (trans
                                                    (T2627.Dual (T2627.Dual
 b_akZ))
                                                    (trans
                                                       (right
                                                          (trans
                                                             (trans
                                                                (sym
                                                                   (a_akW
 T2627.:CoF:R2Dual T2627.Dual
 b_akZ))
                                                                (trans
 (T2627.Dual
 (T2627.R
 (right
 (left
 (trans
 (sym $co$_alf)
 (trans
 (trans
 (sym
 $coDual_alR)
 (T2627.Dual
 $co$_al5))
 (a_akY
 T2627.:CoF:R1Dual b_akZ)))))
 (T2627.Dual b_akZ)))
                                                                   (trans
 (T2627.Dual
 (trans
 (sym
 (a_akY
 T2627.:CoF:R1Dual b_akZ))
 (trans
 (T2627.Dual
 (sym $co$_al5))
 $coDual_alR)))
 $coDual_alQ)))
                                                             $co$_al5))
                                                       b_akZ))
                                                 b_akZ)))
                                        b_akZ))
                                  b_akZ))
                            b_akZ)
                       @ (trans
                            (trans
                               (T2627.Dual b_akZ)
                               (trans
                                  (trans
                                     (T2627.Dual b_akZ)
                                     (trans
                                        (trans
                                           (T2627.Dual b_akZ)
                                           (trans
                                              (T2627.Dual b_akZ)
                                              (trans
                                                 (trans
                                                    (T2627.Dual b_akZ)
                                                    (trans
                                                       (right
                                                          (trans
                                                             (trans
                                                                (sym (a_akY
 T2627.:CoF:R1Dual b_akZ))
                                                                (trans
 (T2627.Dual (sym $co$_al5))
 $coDual_alR))
                                                             $co$_alf))
                                                       b_akX))
                                                 b_akX)))
                                        b_akX))
                                  b_akX))
                            b_akX)
                       (k_ag6
                          (a_ag8
                           `cast` (trans
                                     (trans
                                        a_akY
                                        (trans
                                           (trans
                                              a_akY
                                              (trans
                                                 (trans
                                                    a_akY
                                                    (trans
                                                       (trans
                                                          a_akY
                                                          (trans
                                                             (right
                                                                (left
                                                                   (trans
 (trans
 (sym
 (a_akY
 T2627.:CoF:R1Dual b_akZ))
 (trans
 (T2627.Dual
 (sym $co$_al5))
 $coDual_alR))
 $co$_alf)))
                                                             a_akW))
                                                       a_akW))
                                                 a_akW))
                                           a_akW))
                                     a_akW
                                   :: a_akY ~ a_akW)))
                       r_aga
                 };
               T2627.Wr @ a_all
                        @ b_alm
                        @ $co$_alI
                        a_agc [ALWAYS Just L]
                        r_age [ALWAYS Just S] ->
                 case ds_dmB of wild_Xq [ALWAYS Just A] {
                   __DEFAULT -> fail_sn8;
                   T2627.Rd @ a_aln @ b_alo @ $co$_alu k_agg [ALWAYS Just
 C(S)] ->
                     T2627.conn
                       @ b_alm
                       @ b_alo
                       @ (trans
                            (trans
                               (T2627.Dual b_alm)
                               (trans
                                  (trans
                                     (T2627.Dual b_alm)
                                     (trans
                                        (trans
                                           (T2627.Dual b_alm)
                                           (trans
                                              (trans
                                                 (T2627.Dual
                                                    (right
                                                       (trans
                                                          (sym $co$_alI)
                                                          (trans
                                                             (trans
                                                                (sym
 $coDual_alR)
                                                                (T2627.Dual
 $co$_alu))
                                                             (a_aln
 T2627.:CoF:R2Dual b_alo)))))
                                                 (T2627.Dual (T2627.Dual
 b_alo)))
                                              (trans
                                                 (trans
                                                    (T2627.Dual (T2627.Dual
 b_alo))
                                                    (trans
                                                       (right
                                                          (trans
                                                             (trans
                                                                (sym
                                                                   (a_all
 T2627.:CoF:R1Dual T2627.Dual
 b_alo))
                                                                (trans
 (T2627.Dual
 (T2627.W
 (right
 (left
 (trans
 (sym $co$_alI)
 (trans
 (trans
 (sym
 $coDual_alR)
 (T2627.Dual
 $co$_alu))
 (a_aln
 T2627.:CoF:R2Dual b_alo)))))
 (T2627.Dual b_alo)))
                                                                   (trans
 (T2627.Dual
 (trans
 (sym
 (a_aln
 T2627.:CoF:R2Dual b_alo))
 (trans
 (T2627.Dual
 (sym $co$_alu))
 $coDual_alR)))
 $coDual_alQ)))
                                                             $co$_alu))
                                                       b_alo))
                                                 b_alo)))
                                        b_alo))
                                  b_alo))
                            b_alo)
                       @ (trans
                            (trans
                               (T2627.Dual b_alo)
                               (trans
                                  (trans
                                     (T2627.Dual b_alo)
                                     (trans
                                        (trans
                                           (T2627.Dual b_alo)
                                           (trans
                                              (T2627.Dual b_alo)
                                              (trans
                                                 (trans
                                                    (T2627.Dual b_alo)
                                                    (trans
                                                       (right
                                                          (trans
                                                             (trans
                                                                (sym (a_aln
 T2627.:CoF:R2Dual b_alo))
                                                                (trans
 (T2627.Dual (sym $co$_alu))
 $coDual_alR))
                                                             $co$_alI))
                                                       b_alm))
                                                 b_alm)))
                                        b_alm))
                                  b_alm))
                            b_alm)
                       r_age
                       (k_agg
                          (a_agc
                           `cast` (trans
                                     (trans
                                        a_all
                                        (sym
                                           (sym
                                              (trans
                                                 (trans
                                                    a_all
                                                    (sym
                                                       (sym
                                                          (trans
                                                             (trans
                                                                a_all
                                                                (sym
                                                                   (sym
 (trans
 (trans
 a_all
 (sym
 (trans
 (right
 (left
 (trans
 (trans
 (sym
 (a_aln
 T2627.:CoF:R2Dual b_alo))
 (trans
 (T2627.Dual
 (sym
 $co$_alu))
 $coDual_alR))
 $co$_alI)))
 (sym a_all))))
 a_aln))))
                                                             a_aln))))
                                                 a_aln))))
                                     a_aln
                                   :: a_all ~ a_aln)))
                 };
               T2627.Fin @ $co$_akV x_ag2 [ALWAYS Just L] ->
                 case ds_dmB of wild_Xn [ALWAYS Just A] {
                   __DEFAULT -> fail_sn8;
                   T2627.Fin @ $co$_akU y_ag4 [ALWAYS Just L] -> (x_ag2,
 y_ag4)
                 }
             })
            @ a_afZ @ b_ag0 @ co_wild_B1 @ co_wild_B1 w_snv w_snw
     of ww_snC { (ww_snD, ww_snE) ->
     (# ww_snD, ww_snE #)
     }
 T2627.conn [ALWAYS LoopBreaker Nothing] :: forall a_afZ b_ag0.
                                            (T2627.Dual a_afZ ~ b_ag0,
 T2627.Dual b_ag0 ~ a_afZ) =>
                                            T2627.Comm a_afZ
                                            -> T2627.Comm b_ag0
                                            -> (GHC.Types.Int,
 GHC.Types.Int)
 [Exported]
 [Arity 2
  Worker $wconn_snA
  Str: DmdType SSm]
 T2627.conn =
   __inline_me (\ (@ a_afZ)
                  (@ b_ag0)
                  (@ co_wild_B1)
                  (@ co_wild_B1)
                  (w_snv [ALWAYS Just S] :: T2627.Comm a_afZ)
                  (w_snw [ALWAYS Just S] :: T2627.Comm b_ag0) ->
                  case $wconn_snA
                         @ a_afZ @ b_ag0 @ co_wild_B1 @ co_wild_B1 w_snv
 w_snw
                  of ww_snB { (# ww_snD, ww_snE #) ->
                  (ww_snD, ww_snE)
                  })
 end Rec }

 *** End of Offense ***


 <no location info>:
 Compilation had errors



 *** unexpected failure for T2627(profasm)
 }}}

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/2728>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to