Open GoogleCodeExporter opened 9 years ago
[deleted comment]
it helps to add
unifyVar (v@(Tv _ (Rigid _ _ _) _)) (x@(TyApp _ _)) = emit (TcTv v) x
before
unifyVar v t = matchErr "(V) different types" (TcTv v) t
This gets issue47-SetEmulation.omg loading :-)
The exact theory is not clear. An occur check is definitely needed (when
occurring as argument to a type
constructor).
Maybe we need to modify the algo that returns free variables to tell whether it
appears inside of a type
function.
Original comment by ggr...@gmail.com
on 19 Dec 2007 at 9:50
revision 63.
the occurs check is very restrictive,
we have to reconsider the occurs check strategy,
when the occurrence is inside of type function application,
then occurrence should be allowed.
a == {f a} -- OK
a == {f (Con a)} -- OK
a == Con {f a} -- OK
a == Con a -- NOT OK
Original comment by ggr...@gmail.com
on 20 Dec 2007 at 12:04
r495. See checkin comment, I would encourage a code review on this one ;-)
Might be a good fix.
Original comment by ggr...@gmail.com
on 3 Jan 2011 at 4:04
as of 1.4.7pre, r502, the file still does not load:
Omega Interpreter: version 1.4.7pre
Build Date: unspecified
Type ':?' for command line help.
Loading source files = ["issue47-SetEmulation.omg"]
->Loading import issue47-SetEmulation.omg
->Loading import LangPrelude.prg
<-LangPrelude.prg loaded.
**** Near File: issue47-SetEmulation.omg
line: 55 column: 1
No progress can be made on the term:
{exclude _a _b}
No rule for exclude matched.
Either the rules are incomplete, or a lemma is needed.
<-issue47-SetEmulation.omg loaded.
Original comment by ggr...@gmail.com
on 4 Jan 2011 at 3:22
maybe we need the splitClass fix (MutVar|Easy|Hard)
Original comment by ggr...@gmail.com
on 4 Jan 2011 at 3:44
Original issue reported on code.google.com by
ggr...@gmail.com
on 13 Dec 2007 at 11:37