X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Finterpreter%2Ftype.c;h=9ce98030dfe2837396986d36be65a759788193c4;hb=45e6e99783c6901d318192911d153bd3a88bebc5;hp=c137513d6cb18caabf9ad0fcfb527841f758e509;hpb=be1966e78e545611f39eb2eed6f11fc60558100c;p=ghc-hetmet.git diff --git a/ghc/interpreter/type.c b/ghc/interpreter/type.c index c137513..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.32 $ - * $Date: 2000/04/04 01:07:49 $ + * $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; @@ -2853,7 +2855,7 @@ Int what; { } else { dummyVar = inventVar(); - setCurrModule(modulePrimPrel); + setCurrModule(modulePrelPrim); starToStar = simpleKind(1);