#1999: panic with GADT etc.
----------------------------+-----------------------------------------------
  Reporter:  jeltsch        |          Owner:             
      Type:  bug            |         Status:  new        
  Priority:  normal         |      Milestone:  6.10 branch
 Component:  Compiler       |        Version:  6.9        
Resolution:                 |       Keywords:             
  Testcase:  T1999, T1999a  |      Blockedby:             
Difficulty:  Unknown        |             Os:  Linux      
  Blocking:                 |   Architecture:  x86        
   Failure:  None/Unknown   |  
----------------------------+-----------------------------------------------

Comment(by ganesh):

 OK, now I'm very confused about what exactly is being broken here :-)

 The example given in the paper is

 {{{
 data Eq a b where EQ :: Eq a a
 f :: Eq (p q) (r s) → q → s
 f EQ x = x
 }}}

 As I understand it, that's dodgy if p or r are type functions, but the
 previous restriction on unsaturated type functions meant that couldn't
 arise (as I understand it). In FC2 type functions can be unsaturated but
 the code above is illegal because you can't decompose arbitrary type
 applications. But you can still decompose applications of a known datatype
 constructor, so I think I can still work around the restriction by just
 specialising my example above, replacing 's' in my example above with the
 actual datatype constructor needed. But as you say your beta-reduction
 code already seems to be using concrete datatype constructors so I must be
 missing something.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/1999#comment:17>
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