X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Finterpreter%2Ftype.c;h=9ce98030dfe2837396986d36be65a759788193c4;hb=0e5a78df9ae50ef650fc03440ebd60988ea5b3d1;hp=063e4694be5cedcff80d98b7edc928dbcad02c6e;hpb=b287d1d7082f03a18e302e0ea58c97b56422ae7b;p=ghc-hetmet.git diff --git a/ghc/interpreter/type.c b/ghc/interpreter/type.c index 063e469..9ce9803 100644 --- a/ghc/interpreter/type.c +++ b/ghc/interpreter/type.c @@ -9,8 +9,8 @@ * included in the distribution. * * $RCSfile: type.c,v $ - * $Revision: 1.33 $ - * $Date: 2000/04/06 00:01:27 $ + * $Revision: 1.36 $ + * $Date: 2000/05/26 17:42:18 $ * ------------------------------------------------------------------------*/ #include "hugsbasictypes.h" @@ -18,6 +18,7 @@ #include "connect.h" #include "errors.h" +#include "Rts.h" /* to make StgPtr visible in Assembler.h */ #include "Assembler.h" /* for AsmCTypes */ /*#define DEBUG_TYPES*/ @@ -800,7 +801,7 @@ Cell e; { /* requires polymorphism, qualified*/ for (; nonNull(predsAre); predsAre=tl(predsAre)) { evs = cons(assumeEvid(hd(predsAre),typeOff),evs); } - if (!isName(h) || !isCfun(h)) { + /* we now _always_ do this: if (!isName(h) || !isCfun(h)) */ { h = applyToArgs(h,rev(evs)); } } @@ -1134,6 +1135,7 @@ List qs; { case FROMQUAL : { Int beta = newTyvars(1); saveVarsAss(); + enterPendingBtyvs(); spCheck(l,snd(snd(q)),NIL,genQual,m,beta); enterSkolVars(); fst(snd(q)) @@ -1141,7 +1143,7 @@ List qs; { shouldBe(l,fst(snd(q)),NIL,genQual,aVar,beta); typeComp(l,m,e,qs1); restoreVarsAss(); - doneBtyvs(l); + leavePendingBtyvs(); leaveSkolVars(l,typeIs,typeOff,0); } break;