cvObtainTerm, -- :: HscEnv -> Int -> Bool -> Maybe Type -> HValue -> IO Term
Term(..),
+ isTerm,
+ isSuspension,
+ isPrim,
pprTerm,
cPprTerm,
cPprTermBase,
-- unsafeDeepSeq,
cvReconstructType,
computeRTTIsubst,
- sigmaType
+ sigmaType,
+ Closure(..),
+ getClosureData,
+ ClosureType(..),
+ isConstr,
+ isIndirection
) where
#include "HsVersions.h"
import DataCon
import Type
-import TcRnMonad ( TcM, initTc, initTcPrintErrors, ioToTcRn,
+import TcRnMonad ( TcM, initTc, ioToTcRn,
tryTcErrs)
import TcType
import TcMType
import Data.Maybe
import Data.Array.Base
import Data.List ( partition )
-import qualified Data.Sequence as Seq
import Foreign
import System.IO.Unsafe
(signatureType,_) <- instScheme(dataConRepType dc)
addConstraint myType signatureType
return $ [ appArr (\e->(t,e)) (ptrs clos) i
- | (i,t) <- drop extra_args $ zip [0..] subTtypes]
+ | (i,t) <- drop extra_args $
+ zip [0..] (filter isPointed subTtypes)]
otherwise -> return []
-- This helper computes the difference between a base type t and the