darcs

Issue 1562 type witness failures on GHC 6.8.2

Title type witness failures on GHC 6.8.2
Priority bug Status resolved
Milestone Resolved in
Superseder Nosy List dagit, darcs-devel, dmitry.kurochkin, ganesh, kowey, thorkilnaur
Assigned To ganesh
Topics Devel

Created on 2009-08-24.08:59:24 by kowey, last changed 2009-09-02.06:16:25 by dagit.

Messages
msg8449 (view) Author: kowey Date: 2009-08-24.08:59:19
[ 64 of 100] Compiling Darcs.ProgressPatches ( src/Darcs/ProgressPatches.hs,
dist/build/witnesses/witnesses-tmp/Darcs/ProgressPatches.o )

src/Darcs/ProgressPatches.hs:17:21:
    Couldn't match expected type `x' against inferred type `y'
      `x' is a rigid type variable bound by
          the type signature for `progressFL'
            at src/Darcs/ProgressPatches.hs:16:29
      `y' is a rigid type variable bound by
          the type signature for `progressFL'
            at src/Darcs/ProgressPatches.hs:16:31
      Expected type: FL a x y
      Inferred type: FL a y y
    In the expression: NilFL
    In the definition of `progressFL': progressFL _ NilFL = NilFL

src/Darcs/ProgressPatches.hs:25:21:
    Couldn't match expected type `x' against inferred type `y'
      `x' is a rigid type variable bound by
          the type signature for `pl' at src/Darcs/ProgressPatches.hs:24:21
      `y' is a rigid type variable bound by
          the type signature for `pl' at src/Darcs/ProgressPatches.hs:24:23
      Expected type: FL a x y
      Inferred type: FL a y y
    In the expression: NilFL
    In the definition of `pl': pl NilFL = NilFL

src/Darcs/ProgressPatches.hs:26:27:
    Couldn't match expected type `y' against inferred type `y1'
      `y' is a rigid type variable bound by
          the type signature for `pl' at src/Darcs/ProgressPatches.hs:24:23
      `y1' is a rigid type variable bound by
           the constructor `:>:' at src/Darcs/ProgressPatches.hs:26:14
      Expected type: FL a x y
      Inferred type: FL a x y1
    In the expression:
          unsafePerformIO
        $ do endTedious k
             return (y :>: NilFL)
    In the definition of `pl':
        pl (y :>: NilFL)
             = unsafePerformIO
             $ do endTedious k
                  return (y :>: NilFL)

src/Darcs/ProgressPatches.hs:32:21:
    Couldn't match expected type `x' against inferred type `y'
      `x' is a rigid type variable bound by
          the type signature for `progressRL'
            at src/Darcs/ProgressPatches.hs:31:29
      `y' is a rigid type variable bound by
          the type signature for `progressRL'
            at src/Darcs/ProgressPatches.hs:31:31
      Expected type: RL a x y
      Inferred type: RL a y y
    In the expression: NilRL
    In the definition of `progressRL': progressRL _ NilRL = NilRL

src/Darcs/ProgressPatches.hs:40:21:
    Couldn't match expected type `x' against inferred type `y'
      `x' is a rigid type variable bound by
          the type signature for `pl' at src/Darcs/ProgressPatches.hs:39:21
      `y' is a rigid type variable bound by
          the type signature for `pl' at src/Darcs/ProgressPatches.hs:39:23
      Expected type: RL a x y
      Inferred type: RL a y y
    In the expression: NilRL
    In the definition of `pl': pl NilRL = NilRL

src/Darcs/ProgressPatches.hs:41:27:
    Couldn't match expected type `x' against inferred type `y1'
      `x' is a rigid type variable bound by
          the type signature for `pl' at src/Darcs/ProgressPatches.hs:39:21
      `y1' is a rigid type variable bound by
           the constructor `:<:' at src/Darcs/ProgressPatches.hs:41:14
      Expected type: RL a x y
      Inferred type: RL a y1 y
    In the expression:
          unsafePerformIO
        $ do endTedious k
             return (y :<: NilRL)
    In the definition of `pl':
        pl (y :<: NilRL)
             = unsafePerformIO
             $ do endTedious k
                  return (y :<: NilRL)

src/Darcs/ProgressPatches.hs:49:29:
    Couldn't match expected type `x' against inferred type `y'
      `x' is a rigid type variable bound by
          the type signature for `progressRLShowTags'
            at src/Darcs/ProgressPatches.hs:47:52
      `y' is a rigid type variable bound by
          the type signature for `progressRLShowTags'
            at src/Darcs/ProgressPatches.hs:47:54
      Expected type: RL (PatchInfoAnd p) x y
      Inferred type: RL (PatchInfoAnd p) y y
    In the expression: NilRL
    In the definition of `progressRLShowTags':
        progressRLShowTags _ NilRL = NilRL

src/Darcs/ProgressPatches.hs:57:21:
    Couldn't match expected type `x' against inferred type `y'
      `x' is a rigid type variable bound by
          the type signature for `pl' at src/Darcs/ProgressPatches.hs:56:36
      `y' is a rigid type variable bound by
          the type signature for `pl' at src/Darcs/ProgressPatches.hs:56:38
      Expected type: RL (PatchInfoAnd p) x y
      Inferred type: RL (PatchInfoAnd p) y y
    In the expression: NilRL
    In the definition of `pl': pl NilRL = NilRL

src/Darcs/ProgressPatches.hs:58:27:
    Couldn't match expected type `x' against inferred type `y1'
      `x' is a rigid type variable bound by
          the type signature for `pl' at src/Darcs/ProgressPatches.hs:56:36
      `y1' is a rigid type variable bound by
           the constructor `:<:' at src/Darcs/ProgressPatches.hs:58:14
      Expected type: RL (PatchInfoAnd p) x y
      Inferred type: RL (PatchInfoAnd p) y1 y
    In the expression:
          unsafePerformIO
        $ do endTedious k
             return (y :<: NilRL)
    In the definition of `pl':
        pl (y :<: NilRL)
             = unsafePerformIO
             $ do endTedious k
                  return (y :<: NilRL)

What gives? I think we need somebody to check that this works with 6.10 and then
poke at it
msg8566 (view) Author: kowey Date: 2009-08-28.10:47:27
Reinier pointed out that this issue is well-known.

The question is if it's easy to fix.  It's research time, I think, time to ask
Haskell gurus what to do about it.

An alternative solution would be just to give up and wont-fix.  When we finally
solve issue1288, just require GHC 6.10.  This may make life difficult for Debian
folks, but I think if we do it after we've already done a hashed-storage release
we can just say "sorry, use Darcs 2.4".  I suspect this the route we'll end up
taking.
msg8620 (view) Author: ganesh Date: 2009-08-31.23:33:09
I've just submitted patches to fix this:

http://lists.osuosl.org/pipermail/darcs-users/2009-August/021119.html
msg8630 (view) Author: dagit Date: 2009-09-02.06:16:23
The patches have now been applied:
http://lists.osuosl.org/pipermail/darcs-users/2009-September/021125.html

So I'm closing this.  If I picked the wrong status for a closed bug, please let
me know.
History
Date User Action Args
2009-08-24 08:59:24koweycreate
2009-08-25 18:16:21adminsetnosy: + darcs-devel, - simon
2009-08-27 14:31:37adminsetnosy: kowey, darcs-devel, thorkilnaur, dmitry.kurochkin
2009-08-28 10:47:29koweysetnosy: + ganesh, dagit
messages: + msg8566
2009-08-31 23:33:11ganeshsetstatus: needs-reproduction -> has-patch
nosy: kowey, darcs-devel, dagit, ganesh, thorkilnaur, dmitry.kurochkin
messages: + msg8620
assignedto: ganesh
2009-09-02 06:16:25dagitsetstatus: has-patch -> resolved
nosy: kowey, darcs-devel, dagit, ganesh, thorkilnaur, dmitry.kurochkin
messages: + msg8630