diff --git a/Data/IsEvaluated.hs b/Data/IsEvaluated.hs
--- a/Data/IsEvaluated.hs
+++ b/Data/IsEvaluated.hs
@@ -1,6 +1,7 @@
 module Data.IsEvaluated(isEvaluated) where
 
-import RtClosureInspect
+import GHC.Vacuum
+import GHC.Vacuum.ClosureType
 
 -- |Checks whether Control.Exception.evaluate (or rwhnf) would do no work
 -- when applied to the value. May produce false negatives (where isEvaluated
@@ -9,13 +10,38 @@
 -- Use case: if isEvaluated foo returns True, then evaluate foo will never
 -- throw an exception, or indeed take more than constant (small) time.
 isEvaluated :: a -> IO Bool
-isEvaluated a = (discriminate . tipe) `fmap` getClosureData a
+isEvaluated a = discriminate `fmap` closureType a
     where
-      discriminate Constr          = True
-      discriminate Fun             = True
-      discriminate (Indirection _) = True
-      discriminate (MutVar _)      = True
-      discriminate (MVar _)        = True
-      discriminate PAP             = True
+      discriminate CONSTR              = True
+      discriminate CONSTR_1_0          = True
+      discriminate CONSTR_0_1          = True
+      discriminate CONSTR_2_0          = True
+      discriminate CONSTR_1_1          = True
+      discriminate CONSTR_0_2          = True
+      discriminate CONSTR_STATIC       = True
+      discriminate CONSTR_NOCAF_STATIC = True
+      discriminate FUN                 = True
+      discriminate FUN_1_0             = True
+      discriminate FUN_0_1             = True
+      discriminate FUN_2_0             = True
+      discriminate FUN_1_1             = True
+      discriminate FUN_0_2             = True
+      discriminate FUN_STATIC          = True
+      discriminate PAP                 = True
+      discriminate IND                 = True
+      discriminate IND_OLDGEN          = True
+      discriminate IND_PERM            = True
+      discriminate IND_OLDGEN_PERM     = True
+      discriminate IND_STATIC          = True
+-- MVAR_CLEAN  -- These are questionable
+-- MVAR_DIRTY
+-- ARR_WORDS
+-- MUT_ARR_PTRS_CLEAN	
+-- MUT_ARR_PTRS_DIRTY	
+-- MUT_ARR_PTRS_FROZEN0	
+-- MUT_ARR_PTRS_FROZEN	
+-- MUT_VAR_CLEAN	
+-- MUT_VAR_DIRTY
+-- WEAK
       -- It might be possible to handle THUNK_SELECTOR specially
       discriminate _               = False
diff --git a/isevaluated.cabal b/isevaluated.cabal
--- a/isevaluated.cabal
+++ b/isevaluated.cabal
@@ -1,11 +1,11 @@
 name:                isevaluated
-version:             0.1
+version:             0.2
 synopsis:            Check whether a value has been evaluated
 description:         An IO action to check whether some value has been evaluated.
                      .
                      If isEvaluated returns True, evaluating it to weak-head
                      normal form won't throw exceptions or take time.
-category:            Control, Data
+category:            Control, Data, GHC, Debug
 license:             PublicDomain
 author:              Svein Ove Aas
 maintainer:          svein.ove@aas.no
@@ -14,5 +14,5 @@
 stability:           experimental
 
 Library
-  build-depends:       base, ghc > 6.10.1, ghc <= 6.10.3
+  build-depends:       base, vacuum
   Exposed-Modules:     Data.IsEvaluated
