module CoreTools where
-- GHC API
-import qualified DynFlags
+import qualified GHC
import qualified Type
import qualified HsExpr
import qualified HsTypes
-import qualified RdrName
import qualified HsBinds
+import qualified RdrName
import qualified OccName
-import qualified HsBinds
+import qualified TysWiredIn
+import qualified Bag
+import qualified DynFlags
import qualified SrcLoc
-import qualified HsTools
+import GhcTools
+import HsTools
-- | Evaluate a core Type representing type level int from the tfp
-- library to a real int.
core <- toCore expr
execCore core
+
+-- | Get the length of a SizedWord type
+sized_word_len :: Type.Type -> Int
+sized_word_len ty =
+ eval_tfp_int len
+ where
+ (tycon, args) = Type.splitTyConApp ty
+ [len] = args
+