diff options
author | Manuel M T Chakravarty <chak@cse.unsw.edu.au> | 2006-09-20 17:05:28 +0000 |
---|---|---|
committer | Manuel M T Chakravarty <chak@cse.unsw.edu.au> | 2006-09-20 17:05:28 +0000 |
commit | 15cb792d18b1094e98c035dca6ecec5dad516056 (patch) | |
tree | de89a82e732faef4a6828be8e405e73ff790ea3b /compiler/simplCore/SimplEnv.lhs | |
parent | 5d541fe7c43a1dc4c1b2dd9ee49e64238b0754ca (diff) | |
download | haskell-15cb792d18b1094e98c035dca6ecec5dad516056.tar.gz |
Complete the evidence generation for GADTs
Mon Sep 18 14:43:22 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au>
* Complete the evidence generation for GADTs
Sat Aug 5 21:39:51 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au>
* Complete the evidence generation for GADTs
Thu Jul 13 17:18:07 EDT 2006 simonpj@microsoft.com
This patch completes FC evidence generation for GADTs.
It doesn't work properly yet, because part of the compiler thinks
(t1 :=: t2) => t3
is represented with FunTy/PredTy, while the rest thinks it's represented
using ForAllTy. Once that's done things should start to work.
Diffstat (limited to 'compiler/simplCore/SimplEnv.lhs')
-rw-r--r-- | compiler/simplCore/SimplEnv.lhs | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/compiler/simplCore/SimplEnv.lhs b/compiler/simplCore/SimplEnv.lhs index 3556b7eae3..960475c0b5 100644 --- a/compiler/simplCore/SimplEnv.lhs +++ b/compiler/simplCore/SimplEnv.lhs @@ -42,9 +42,9 @@ module SimplEnv ( import SimplMonad import Id ( Id, idType, idOccInfo, idUnfolding, setIdUnfolding ) import IdInfo ( IdInfo, vanillaIdInfo, occInfo, setOccInfo, specInfo, setSpecInfo, - arityInfo, setArityInfo, workerInfo, setWorkerInfo, + arityInfo, workerInfo, setWorkerInfo, unfoldingInfo, setUnfoldingInfo, isEmptySpecInfo, - unknownArity, workerExists + workerExists ) import CoreSyn import Rules ( RuleBase ) @@ -58,7 +58,7 @@ import OrdList import qualified CoreSubst ( Subst, mkSubst, substExpr, substSpec, substWorker ) import qualified Type ( substTy, substTyVarBndr ) -import Type ( Type, TvSubst(..), TvSubstEnv, composeTvSubst, +import Type ( Type, TvSubst(..), TvSubstEnv, isUnLiftedType, seqType, tyVarsOfType ) import Coercion ( Coercion ) import BasicTypes ( OccInfo(..), isFragileOcc ) @@ -556,8 +556,7 @@ substIdInfo subst info not (workerExists old_wrkr) && not (hasUnfolding (unfoldingInfo info)) - keep_occ = not (isFragileOcc old_occ) - old_arity = arityInfo info + keep_occ = not (isFragileOcc old_occ) old_occ = occInfo info old_rules = specInfo info old_wrkr = workerInfo info |