#4296: The dreaded SkolemOccurs problem
---------------------------------+------------------------------------------
Reporter: simonpj | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 6.12.3
Keywords: | Testcase:
indexed-types/should_compile/Simple20
Blockedby: | Difficulty:
Os: Unknown/Multiple | Blocking:
Architecture: Unknown/Multiple | Failure: None/Unknown
---------------------------------+------------------------------------------
Description changed by simonpj:
Old description:
> The "!SkolemOccurs" problem is a celebrated difficulty with combining (a)
> termination and (b) completeness, in this example:
> {{{
> type instance F [a] = [F a]
> f :: (F [a] ~ a) => ...
> }}}
> Currently we err on the side of completeness, and lose termination.
New description:
The "!SkolemOccurs" problem is a celebrated difficulty with combining (a)
termination and (b) completeness, in this example:
{{{
type instance F [a] = [F a]
f :: (F [a] ~ a) => ...
}}}
Currently we err on the side of completeness, and lose termination:
{{{
Simple20.hs:9:1:
Context reduction stack overflow; size = 21
Use -fcontext-stack=N to increase stack size to N
co :: F [F (F (F (F (F (F (F (F (F (F a)))))))))]
~
F (F (F (F (F (F (F (F (F (F a)))))))))
co :: F (F (F (F (F (F (F (F (F a))))))))
~
[F (F (F (F (F (F (F (F (F (F a)))))))))]
co :: F [F (F (F (F (F (F (F (F (F a))))))))]
~
F (F (F (F (F (F (F (F (F a))))))))
co :: F (F (F (F (F (F (F (F a)))))))
~
[F (F (F (F (F (F (F (F (F a))))))))]
co :: F [F (F (F (F (F (F (F (F a)))))))]
~
F (F (F (F (F (F (F (F a)))))))
co :: F (F (F (F (F (F (F a))))))
~
[F (F (F (F (F (F (F (F a)))))))]
co :: F [F (F (F (F (F (F (F a))))))] ~ F (F (F (F (F (F (F a))))))
co :: F (F (F (F (F (F a))))) ~ [F (F (F (F (F (F (F a))))))]
co :: F [F (F (F (F (F (F a)))))] ~ F (F (F (F (F (F a)))))
co :: F (F (F (F (F a)))) ~ [F (F (F (F (F (F a)))))]
co :: F [F (F (F (F (F a))))] ~ F (F (F (F (F a))))
co :: F (F (F (F a))) ~ [F (F (F (F (F a))))]
co :: F [F (F (F (F a)))] ~ F (F (F (F a)))
co :: F (F (F a)) ~ [F (F (F (F a)))]
co :: F [F (F (F a))] ~ F (F (F a))
co :: F (F a) ~ [F (F (F a))]
co :: F [F (F a)] ~ F (F a)
co :: F a ~ [F (F a)]
co :: F [F a] ~ F a
co :: a ~ [F a]
co :: F [a] ~ a
}}}
--
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/4296#comment:1>
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