Cabalize ext-core tools
[ghc-hetmet.git] / utils / ext-core / Language / Core / PrimEnv.hs
diff --git a/utils/ext-core/Language/Core/PrimEnv.hs b/utils/ext-core/Language/Core/PrimEnv.hs
new file mode 100644 (file)
index 0000000..ed36668
--- /dev/null
@@ -0,0 +1,373 @@
+-----------------------------------------------------------------------
+-- This module is automatically generated by the GHC utility
+-- "genprimopcode". Do not edit!
+-----------------------------------------------------------------------
+module Language.Core.PrimEnv(primTcs, primVals, intLitTypes, ratLitTypes,
+ charLitTypes, stringLitTypes) where
+import Language.Core.Core
+import Language.Core.Encoding
+
+primTcs :: [(Tcon, Kind)]
+primTcs = [
+      (zEncodeString "Char#", Kunlifted),
+      (zEncodeString "Int#", Kunlifted),
+      (zEncodeString "Word#", Kunlifted),
+      (zEncodeString "Int64#", Kunlifted),
+      (zEncodeString "Word64#", Kunlifted),
+      (zEncodeString "Double#", Kunlifted),
+      (zEncodeString "Float#", Kunlifted),
+      (zEncodeString "Array#", (Karrow Klifted Kunlifted)),
+      (zEncodeString "MutArr#", (Karrow Klifted (Karrow Klifted Kunlifted))),
+      (zEncodeString "ByteArr#", Kunlifted),
+      (zEncodeString "MutByteArr#", (Karrow Klifted Kunlifted)),
+      (zEncodeString "Addr#", Kunlifted),
+      (zEncodeString "MutVar#", (Karrow Klifted (Karrow Klifted Kunlifted))),
+      (zEncodeString "TVar#", (Karrow Klifted (Karrow Klifted Kunlifted))),
+      (zEncodeString "MVar#", (Karrow Klifted (Karrow Klifted Kunlifted))),
+      (zEncodeString "State#", (Karrow Klifted Kunlifted)),
+      (zEncodeString "RealWorld", Klifted),
+      (zEncodeString "ThreadId#", Kunlifted),
+      (zEncodeString "Weak#", (Karrow Klifted Kunlifted)),
+      (zEncodeString "StablePtr#", (Karrow Klifted Kunlifted)),
+      (zEncodeString "StableName#", (Karrow Klifted Kunlifted)),
+      (zEncodeString "BCO#", Kunlifted),
+      (zEncodeString "Any", Klifted)   ]
+primVals :: [(Var, Ty)]
+primVals = [
+      (zEncodeString "gtChar#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Char#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Char#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "geChar#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Char#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Char#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "eqChar#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Char#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Char#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "neChar#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Char#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Char#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "ltChar#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Char#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Char#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "leChar#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Char#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Char#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "ord#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Char#")))) ((Tcon (Just primMname, zEncodeString "Int#")))),
+      (zEncodeString "+#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Int#"))))),
+      (zEncodeString "-#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Int#"))))),
+      (zEncodeString "*#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Int#"))))),
+      (zEncodeString "mulIntMayOflo#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Int#"))))),
+      (zEncodeString "quotInt#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Int#"))))),
+      (zEncodeString "remInt#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Int#"))))),
+      (zEncodeString "gcdInt#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Int#"))))),
+      (zEncodeString "negateInt#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Int#")))),
+      (zEncodeString "addIntC#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Int#"))))))),
+      (zEncodeString "subIntC#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Int#"))))))),
+      (zEncodeString ">#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString ">=#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "==#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "/=#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "<#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "<=#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "chr#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Char#")))),
+      (zEncodeString "int2Word#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Word#")))),
+      (zEncodeString "int2Float#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Float#")))),
+      (zEncodeString "int2Double#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Double#")))),
+      (zEncodeString "int2Integer#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "ByteArray#")))))),
+      (zEncodeString "uncheckedIShiftL#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Int#"))))),
+      (zEncodeString "uncheckedIShiftRA#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Int#"))))),
+      (zEncodeString "uncheckedIShiftRL#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Int#"))))),
+      (zEncodeString "plusWord#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) ((Tcon (Just primMname, zEncodeString "Word#"))))),
+      (zEncodeString "minusWord#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) ((Tcon (Just primMname, zEncodeString "Word#"))))),
+      (zEncodeString "timesWord#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) ((Tcon (Just primMname, zEncodeString "Word#"))))),
+      (zEncodeString "quotWord#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) ((Tcon (Just primMname, zEncodeString "Word#"))))),
+      (zEncodeString "remWord#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) ((Tcon (Just primMname, zEncodeString "Word#"))))),
+      (zEncodeString "and#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) ((Tcon (Just primMname, zEncodeString "Word#"))))),
+      (zEncodeString "or#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) ((Tcon (Just primMname, zEncodeString "Word#"))))),
+      (zEncodeString "xor#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) ((Tcon (Just primMname, zEncodeString "Word#"))))),
+      (zEncodeString "not#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) ((Tcon (Just primMname, zEncodeString "Word#")))),
+      (zEncodeString "uncheckedShiftL#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Word#"))))),
+      (zEncodeString "uncheckedShiftRL#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Word#"))))),
+      (zEncodeString "word2Int#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) ((Tcon (Just primMname, zEncodeString "Int#")))),
+      (zEncodeString "word2Integer#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "ByteArray#")))))),
+      (zEncodeString "gtWord#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "geWord#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "eqWord#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "neWord#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "ltWord#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "leWord#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "narrow8Int#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Int#")))),
+      (zEncodeString "narrow16Int#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Int#")))),
+      (zEncodeString "narrow32Int#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Int#")))),
+      (zEncodeString "narrow8Word#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) ((Tcon (Just primMname, zEncodeString "Word#")))),
+      (zEncodeString "narrow16Word#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) ((Tcon (Just primMname, zEncodeString "Word#")))),
+      (zEncodeString "narrow32Word#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) ((Tcon (Just primMname, zEncodeString "Word#")))),
+      (zEncodeString "int64ToInteger#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int64#")))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "ByteArray#")))))),
+      (zEncodeString "word64ToInteger#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word64#")))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "ByteArray#")))))),
+      (zEncodeString "plusInteger#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "ByteArray#"))))))))),
+      (zEncodeString "minusInteger#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "ByteArray#"))))))))),
+      (zEncodeString "timesInteger#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "ByteArray#"))))))))),
+      (zEncodeString "gcdInteger#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "ByteArray#"))))))))),
+      (zEncodeString "gcdIntegerInt#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Int#")))))),
+      (zEncodeString "divExactInteger#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "ByteArray#"))))))))),
+      (zEncodeString "quotInteger#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "ByteArray#"))))))))),
+      (zEncodeString "remInteger#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "ByteArray#"))))))))),
+      (zEncodeString "cmpInteger#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) ((Tcon (Just primMname, zEncodeString "Int#"))))))),
+      (zEncodeString "cmpIntegerInt#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Int#")))))),
+      (zEncodeString "quotRemInteger#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) ((Tapp (Tapp (Tapp (Tapp (Tcon (Just primMname, "Z4H")) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "ByteArray#"))))))))),
+      (zEncodeString "divModInteger#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) ((Tapp (Tapp (Tapp (Tapp (Tcon (Just primMname, "Z4H")) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "ByteArray#"))))))))),
+      (zEncodeString "integer2Int#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) ((Tcon (Just primMname, zEncodeString "Int#"))))),
+      (zEncodeString "integer2Word#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) ((Tcon (Just primMname, zEncodeString "Word#"))))),
+      (zEncodeString "andInteger#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "ByteArray#"))))))))),
+      (zEncodeString "orInteger#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "ByteArray#"))))))))),
+      (zEncodeString "xorInteger#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "ByteArray#"))))))))),
+      (zEncodeString "complementInteger#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "ByteArray#"))))))),
+      (zEncodeString ">##", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString ">=##", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "==##", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "/=##", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "<##", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "<=##", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "+##", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) ((Tcon (Just primMname, zEncodeString "Double#"))))),
+      (zEncodeString "-##", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) ((Tcon (Just primMname, zEncodeString "Double#"))))),
+      (zEncodeString "*##", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) ((Tcon (Just primMname, zEncodeString "Double#"))))),
+      (zEncodeString "/##", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) ((Tcon (Just primMname, zEncodeString "Double#"))))),
+      (zEncodeString "negateDouble#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) ((Tcon (Just primMname, zEncodeString "Double#")))),
+      (zEncodeString "double2Int#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) ((Tcon (Just primMname, zEncodeString "Int#")))),
+      (zEncodeString "double2Float#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) ((Tcon (Just primMname, zEncodeString "Float#")))),
+      (zEncodeString "expDouble#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) ((Tcon (Just primMname, zEncodeString "Double#")))),
+      (zEncodeString "logDouble#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) ((Tcon (Just primMname, zEncodeString "Double#")))),
+      (zEncodeString "sqrtDouble#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) ((Tcon (Just primMname, zEncodeString "Double#")))),
+      (zEncodeString "sinDouble#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) ((Tcon (Just primMname, zEncodeString "Double#")))),
+      (zEncodeString "cosDouble#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) ((Tcon (Just primMname, zEncodeString "Double#")))),
+      (zEncodeString "tanDouble#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) ((Tcon (Just primMname, zEncodeString "Double#")))),
+      (zEncodeString "asinDouble#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) ((Tcon (Just primMname, zEncodeString "Double#")))),
+      (zEncodeString "acosDouble#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) ((Tcon (Just primMname, zEncodeString "Double#")))),
+      (zEncodeString "atanDouble#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) ((Tcon (Just primMname, zEncodeString "Double#")))),
+      (zEncodeString "sinhDouble#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) ((Tcon (Just primMname, zEncodeString "Double#")))),
+      (zEncodeString "coshDouble#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) ((Tcon (Just primMname, zEncodeString "Double#")))),
+      (zEncodeString "tanhDouble#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) ((Tcon (Just primMname, zEncodeString "Double#")))),
+      (zEncodeString "**##", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) ((Tcon (Just primMname, zEncodeString "Double#"))))),
+      (zEncodeString "decodeDouble#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) ((Tapp (Tapp (Tapp (Tcon (Just primMname, "Z3H")) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "ByteArray#")))))),
+      (zEncodeString "gtFloat#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "geFloat#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "eqFloat#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "neFloat#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "ltFloat#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "leFloat#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "plusFloat#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) ((Tcon (Just primMname, zEncodeString "Float#"))))),
+      (zEncodeString "minusFloat#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) ((Tcon (Just primMname, zEncodeString "Float#"))))),
+      (zEncodeString "timesFloat#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) ((Tcon (Just primMname, zEncodeString "Float#"))))),
+      (zEncodeString "divideFloat#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) ((Tcon (Just primMname, zEncodeString "Float#"))))),
+      (zEncodeString "negateFloat#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) ((Tcon (Just primMname, zEncodeString "Float#")))),
+      (zEncodeString "float2Int#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) ((Tcon (Just primMname, zEncodeString "Int#")))),
+      (zEncodeString "expFloat#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) ((Tcon (Just primMname, zEncodeString "Float#")))),
+      (zEncodeString "logFloat#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) ((Tcon (Just primMname, zEncodeString "Float#")))),
+      (zEncodeString "sqrtFloat#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) ((Tcon (Just primMname, zEncodeString "Float#")))),
+      (zEncodeString "sinFloat#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) ((Tcon (Just primMname, zEncodeString "Float#")))),
+      (zEncodeString "cosFloat#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) ((Tcon (Just primMname, zEncodeString "Float#")))),
+      (zEncodeString "tanFloat#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) ((Tcon (Just primMname, zEncodeString "Float#")))),
+      (zEncodeString "asinFloat#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) ((Tcon (Just primMname, zEncodeString "Float#")))),
+      (zEncodeString "acosFloat#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) ((Tcon (Just primMname, zEncodeString "Float#")))),
+      (zEncodeString "atanFloat#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) ((Tcon (Just primMname, zEncodeString "Float#")))),
+      (zEncodeString "sinhFloat#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) ((Tcon (Just primMname, zEncodeString "Float#")))),
+      (zEncodeString "coshFloat#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) ((Tcon (Just primMname, zEncodeString "Float#")))),
+      (zEncodeString "tanhFloat#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) ((Tcon (Just primMname, zEncodeString "Float#")))),
+      (zEncodeString "powerFloat#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) ((Tcon (Just primMname, zEncodeString "Float#"))))),
+      (zEncodeString "float2Double#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) ((Tcon (Just primMname, zEncodeString "Double#")))),
+      (zEncodeString "decodeFloat#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) ((Tapp (Tapp (Tapp (Tcon (Just primMname, "Z3H")) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "ByteArray#")))))),
+      (zEncodeString "newArray#", Tforall ("a", Klifted) (Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, zEncodeString "MutableArray#")) ((Tvar "s"))) ((Tvar "a"))))))))))),
+      (zEncodeString "sameMutableArray#", Tforall ("s", Klifted) (Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tapp (Tcon (Just primMname, zEncodeString "MutableArray#")) ((Tvar "s"))) ((Tvar "a"))))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tapp (Tcon (Just primMname, zEncodeString "MutableArray#")) ((Tvar "s"))) ((Tvar "a"))))) ((Tcon (Just boolMname, zEncodeString "Bool"))))))),
+      (zEncodeString "readArray#", Tforall ("s", Klifted) (Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tapp (Tcon (Just primMname, zEncodeString "MutableArray#")) ((Tvar "s"))) ((Tvar "a"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tvar "a"))))))))),
+      (zEncodeString "writeArray#", Tforall ("s", Klifted) (Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tapp (Tcon (Just primMname, zEncodeString "MutableArray#")) ((Tvar "s"))) ((Tvar "a"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s")))))))))),
+      (zEncodeString "indexArray#", Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "Array#")) ((Tvar "a"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tapp (Tcon (Just primMname, "Z1H")) ((Tvar "a"))))))),
+      (zEncodeString "unsafeFreezeArray#", Tforall ("s", Klifted) (Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tapp (Tcon (Just primMname, zEncodeString "MutableArray#")) ((Tvar "s"))) ((Tvar "a"))))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "Array#")) ((Tvar "a")))))))))),
+      (zEncodeString "unsafeThawArray#", Tforall ("a", Klifted) (Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "Array#")) ((Tvar "a"))))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, zEncodeString "MutableArray#")) ((Tvar "s"))) ((Tvar "a")))))))))),
+      (zEncodeString "newByteArray#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))))))),
+      (zEncodeString "newPinnedByteArray#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))))))),
+      (zEncodeString "byteArrayContents#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) ((Tcon (Just primMname, zEncodeString "Addr#")))),
+      (zEncodeString "sameMutableByteArray#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) ((Tcon (Just boolMname, zEncodeString "Bool")))))),
+      (zEncodeString "unsafeFreezeByteArray#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "ByteArray#")))))))),
+      (zEncodeString "sizeofByteArray#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) ((Tcon (Just primMname, zEncodeString "Int#")))),
+      (zEncodeString "sizeofMutableByteArray#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Int#"))))),
+      (zEncodeString "indexCharArray#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Char#"))))),
+      (zEncodeString "indexWideCharArray#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Char#"))))),
+      (zEncodeString "indexIntArray#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Int#"))))),
+      (zEncodeString "indexWordArray#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Word#"))))),
+      (zEncodeString "indexAddrArray#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Addr#"))))),
+      (zEncodeString "indexFloatArray#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Float#"))))),
+      (zEncodeString "indexDoubleArray#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Double#"))))),
+      (zEncodeString "indexStablePtrArray#", Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tapp (Tcon (Just primMname, zEncodeString "StablePtr#")) ((Tvar "a"))))))),
+      (zEncodeString "indexInt8Array#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Int#"))))),
+      (zEncodeString "indexInt16Array#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Int#"))))),
+      (zEncodeString "indexInt32Array#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Int#"))))),
+      (zEncodeString "indexInt64Array#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Int64#"))))),
+      (zEncodeString "indexWord8Array#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Word#"))))),
+      (zEncodeString "indexWord16Array#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Word#"))))),
+      (zEncodeString "indexWord32Array#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Word#"))))),
+      (zEncodeString "indexWord64Array#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Word64#"))))),
+      (zEncodeString "readCharArray#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Char#"))))))))),
+      (zEncodeString "readWideCharArray#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Char#"))))))))),
+      (zEncodeString "readIntArray#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Int#"))))))))),
+      (zEncodeString "readWordArray#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Word#"))))))))),
+      (zEncodeString "readAddrArray#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Addr#"))))))))),
+      (zEncodeString "readFloatArray#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Float#"))))))))),
+      (zEncodeString "readDoubleArray#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Double#"))))))))),
+      (zEncodeString "readStablePtrArray#", Tforall ("s", Klifted) (Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "StablePtr#")) ((Tvar "a"))))))))))),
+      (zEncodeString "readInt8Array#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Int#"))))))))),
+      (zEncodeString "readInt16Array#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Int#"))))))))),
+      (zEncodeString "readInt32Array#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Int#"))))))))),
+      (zEncodeString "readInt64Array#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Int64#"))))))))),
+      (zEncodeString "readWord8Array#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Word#"))))))))),
+      (zEncodeString "readWord16Array#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Word#"))))))))),
+      (zEncodeString "readWord32Array#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Word#"))))))))),
+      (zEncodeString "readWord64Array#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Word64#"))))))))),
+      (zEncodeString "writeCharArray#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Char#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "writeWideCharArray#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Char#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "writeIntArray#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "writeWordArray#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "writeAddrArray#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "writeFloatArray#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "writeDoubleArray#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "writeStablePtrArray#", Tforall ("s", Klifted) (Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "StablePtr#")) ((Tvar "a"))))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s")))))))))),
+      (zEncodeString "writeInt8Array#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "writeInt16Array#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "writeInt32Array#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "writeInt64Array#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int64#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "writeWord8Array#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "writeWord16Array#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "writeWord32Array#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "writeWord64Array#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "MutableByteArray#")) ((Tvar "s"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word64#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "nullAddr#", (Tcon (Just primMname, zEncodeString "Addr#"))),
+      (zEncodeString "plusAddr#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Addr#"))))),
+      (zEncodeString "minusAddr#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) ((Tcon (Just primMname, zEncodeString "Int#"))))),
+      (zEncodeString "remAddr#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Int#"))))),
+      (zEncodeString "addr2Int#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) ((Tcon (Just primMname, zEncodeString "Int#")))),
+      (zEncodeString "int2Addr#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Addr#")))),
+      (zEncodeString "gtAddr#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "geAddr#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "eqAddr#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "neAddr#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "ltAddr#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "leAddr#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) ((Tcon (Just boolMname, zEncodeString "Bool"))))),
+      (zEncodeString "indexCharOffAddr#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Char#"))))),
+      (zEncodeString "indexWideCharOffAddr#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Char#"))))),
+      (zEncodeString "indexIntOffAddr#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Int#"))))),
+      (zEncodeString "indexWordOffAddr#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Word#"))))),
+      (zEncodeString "indexAddrOffAddr#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Addr#"))))),
+      (zEncodeString "indexFloatOffAddr#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Float#"))))),
+      (zEncodeString "indexDoubleOffAddr#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Double#"))))),
+      (zEncodeString "indexStablePtrOffAddr#", Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tapp (Tcon (Just primMname, zEncodeString "StablePtr#")) ((Tvar "a"))))))),
+      (zEncodeString "indexInt8OffAddr#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Int#"))))),
+      (zEncodeString "indexInt16OffAddr#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Int#"))))),
+      (zEncodeString "indexInt32OffAddr#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Int#"))))),
+      (zEncodeString "indexInt64OffAddr#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Int64#"))))),
+      (zEncodeString "indexWord8OffAddr#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Word#"))))),
+      (zEncodeString "indexWord16OffAddr#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Word#"))))),
+      (zEncodeString "indexWord32OffAddr#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Word#"))))),
+      (zEncodeString "indexWord64OffAddr#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tcon (Just primMname, zEncodeString "Word64#"))))),
+      (zEncodeString "readCharOffAddr#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Char#"))))))))),
+      (zEncodeString "readWideCharOffAddr#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Char#"))))))))),
+      (zEncodeString "readIntOffAddr#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Int#"))))))))),
+      (zEncodeString "readWordOffAddr#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Word#"))))))))),
+      (zEncodeString "readAddrOffAddr#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Addr#"))))))))),
+      (zEncodeString "readFloatOffAddr#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Float#"))))))))),
+      (zEncodeString "readDoubleOffAddr#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Double#"))))))))),
+      (zEncodeString "readStablePtrOffAddr#", Tforall ("s", Klifted) (Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "StablePtr#")) ((Tvar "a"))))))))))),
+      (zEncodeString "readInt8OffAddr#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Int#"))))))))),
+      (zEncodeString "readInt16OffAddr#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Int#"))))))))),
+      (zEncodeString "readInt32OffAddr#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Int#"))))))))),
+      (zEncodeString "readInt64OffAddr#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Int64#"))))))))),
+      (zEncodeString "readWord8OffAddr#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Word#"))))))))),
+      (zEncodeString "readWord16OffAddr#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Word#"))))))))),
+      (zEncodeString "readWord32OffAddr#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Word#"))))))))),
+      (zEncodeString "readWord64OffAddr#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Word64#"))))))))),
+      (zEncodeString "writeCharOffAddr#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Char#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "writeWideCharOffAddr#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Char#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "writeIntOffAddr#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "writeWordOffAddr#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "writeAddrOffAddr#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "writeFloatOffAddr#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Float#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "writeDoubleOffAddr#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Double#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "writeStablePtrOffAddr#", Tforall ("a", Klifted) (Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "StablePtr#")) ((Tvar "a"))))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s")))))))))),
+      (zEncodeString "writeInt8OffAddr#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "writeInt16OffAddr#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "writeInt32OffAddr#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "writeInt64OffAddr#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int64#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "writeWord8OffAddr#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "writeWord16OffAddr#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "writeWord32OffAddr#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "writeWord64OffAddr#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Word64#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "newMutVar#", Tforall ("a", Klifted) (Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, zEncodeString "MutVar#")) ((Tvar "s"))) ((Tvar "a")))))))))),
+      (zEncodeString "readMutVar#", Tforall ("s", Klifted) (Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tapp (Tcon (Just primMname, zEncodeString "MutVar#")) ((Tvar "s"))) ((Tvar "a"))))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tvar "a")))))))),
+      (zEncodeString "writeMutVar#", Tforall ("s", Klifted) (Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tapp (Tcon (Just primMname, zEncodeString "MutVar#")) ((Tvar "s"))) ((Tvar "a"))))) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "sameMutVar#", Tforall ("s", Klifted) (Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tapp (Tcon (Just primMname, zEncodeString "MutVar#")) ((Tvar "s"))) ((Tvar "a"))))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tapp (Tcon (Just primMname, zEncodeString "MutVar#")) ((Tvar "s"))) ((Tvar "a"))))) ((Tcon (Just boolMname, zEncodeString "Bool"))))))),
+      (zEncodeString "atomicModifyMutVar#", Tforall ("s", Klifted) (Tforall ("a", Klifted) (Tforall ("b", Klifted) (Tforall ("c", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tapp (Tcon (Just primMname, zEncodeString "MutVar#")) ((Tvar "s"))) ((Tvar "a"))))) (Tapp (Tapp (Tcon tcArrow) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) ((Tvar "b")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tvar "c"))))))))))),
+      (zEncodeString "catch#", Tforall ("a", Klifted) (Tforall ("b", Klifted) (Tapp (Tapp (Tcon tcArrow) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tvar "a")))))) (Tapp (Tapp (Tcon tcArrow) (Tapp (Tapp (Tcon tcArrow) ((Tvar "b"))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tvar "a"))))))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tvar "a"))))))))),
+      (zEncodeString "raise#", Tforall ("a", Klifted) (Tforall ("b", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) ((Tvar "b"))))),
+      (zEncodeString "raiseIO#", Tforall ("a", Klifted) (Tforall ("b", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tvar "b")))))))),
+      (zEncodeString "blockAsyncExceptions#", Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tvar "a")))))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tvar "a"))))))),
+      (zEncodeString "unblockAsyncExceptions#", Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tvar "a")))))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tvar "a"))))))),
+      (zEncodeString "atomically#", Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tvar "a")))))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tvar "a"))))))),
+      (zEncodeString "retry#", Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tvar "a")))))),
+      (zEncodeString "catchRetry#", Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tvar "a")))))) (Tapp (Tapp (Tcon tcArrow) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tvar "a")))))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tvar "a")))))))),
+      (zEncodeString "catchSTM#", Tforall ("a", Klifted) (Tforall ("b", Klifted) (Tapp (Tapp (Tcon tcArrow) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tvar "a")))))) (Tapp (Tapp (Tcon tcArrow) (Tapp (Tapp (Tcon tcArrow) ((Tvar "b"))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tvar "a"))))))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tvar "a"))))))))),
+      (zEncodeString "check#", Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tvar "a")))))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tcon (Just baseMname, zEncodeString "()")))))))),
+      (zEncodeString "newTVar#", Tforall ("a", Klifted) (Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, zEncodeString "TVar#")) ((Tvar "s"))) ((Tvar "a")))))))))),
+      (zEncodeString "readTVar#", Tforall ("s", Klifted) (Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tapp (Tcon (Just primMname, zEncodeString "TVar#")) ((Tvar "s"))) ((Tvar "a"))))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tvar "a")))))))),
+      (zEncodeString "writeTVar#", Tforall ("s", Klifted) (Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tapp (Tcon (Just primMname, zEncodeString "TVar#")) ((Tvar "s"))) ((Tvar "a"))))) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "sameTVar#", Tforall ("s", Klifted) (Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tapp (Tcon (Just primMname, zEncodeString "TVar#")) ((Tvar "s"))) ((Tvar "a"))))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tapp (Tcon (Just primMname, zEncodeString "TVar#")) ((Tvar "s"))) ((Tvar "a"))))) ((Tcon (Just boolMname, zEncodeString "Bool"))))))),
+      (zEncodeString "newMVar#", Tforall ("s", Klifted) (Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, zEncodeString "MVar#")) ((Tvar "s"))) ((Tvar "a"))))))))),
+      (zEncodeString "takeMVar#", Tforall ("s", Klifted) (Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tapp (Tcon (Just primMname, zEncodeString "MVar#")) ((Tvar "s"))) ((Tvar "a"))))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tvar "a")))))))),
+      (zEncodeString "tryTakeMVar#", Tforall ("s", Klifted) (Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tapp (Tcon (Just primMname, zEncodeString "MVar#")) ((Tvar "s"))) ((Tvar "a"))))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tapp (Tcon (Just primMname, "Z3H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tvar "a")))))))),
+      (zEncodeString "putMVar#", Tforall ("s", Klifted) (Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tapp (Tcon (Just primMname, zEncodeString "MVar#")) ((Tvar "s"))) ((Tvar "a"))))) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))))),
+      (zEncodeString "tryPutMVar#", Tforall ("s", Klifted) (Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tapp (Tcon (Just primMname, zEncodeString "MVar#")) ((Tvar "s"))) ((Tvar "a"))))) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Int#")))))))))),
+      (zEncodeString "sameMVar#", Tforall ("s", Klifted) (Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tapp (Tcon (Just primMname, zEncodeString "MVar#")) ((Tvar "s"))) ((Tvar "a"))))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tapp (Tcon (Just primMname, zEncodeString "MVar#")) ((Tvar "s"))) ((Tvar "a"))))) ((Tcon (Just boolMname, zEncodeString "Bool"))))))),
+      (zEncodeString "isEmptyMVar#", Tforall ("s", Klifted) (Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tapp (Tcon (Just primMname, zEncodeString "MVar#")) ((Tvar "s"))) ((Tvar "a"))))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "Int#"))))))))),
+      (zEncodeString "delay#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))),
+      (zEncodeString "waitRead#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))),
+      (zEncodeString "waitWrite#", Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))))),
+      (zEncodeString "fork#", Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tcon (Just primMname, zEncodeString "ThreadId#")))))))),
+      (zEncodeString "forkOn#", Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tcon (Just primMname, zEncodeString "ThreadId#"))))))))),
+      (zEncodeString "killThread#", Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ThreadId#")))) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld"))))))))),
+      (zEncodeString "yield#", Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))),
+      (zEncodeString "myThreadId#", Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tcon (Just primMname, zEncodeString "ThreadId#")))))),
+      (zEncodeString "labelThread#", Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ThreadId#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))))),
+      (zEncodeString "isCurrentThreadBound#", Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tcon (Just primMname, zEncodeString "Int#")))))),
+      (zEncodeString "noDuplicate#", Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))),
+      (zEncodeString "mkWeak#", Tforall ("o", Kopen) (Tforall ("b", Klifted) (Tforall ("c", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tvar "o"))) (Tapp (Tapp (Tcon tcArrow) ((Tvar "b"))) (Tapp (Tapp (Tcon tcArrow) ((Tvar "c"))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tcon (Just primMname, zEncodeString "Weak#")) ((Tvar "b"))))))))))))),
+      (zEncodeString "deRefWeak#", Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "Weak#")) ((Tvar "a"))))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tapp (Tapp (Tcon (Just primMname, "Z3H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tvar "a"))))))),
+      (zEncodeString "finalizeWeak#", Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "Weak#")) ((Tvar "a"))))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tapp (Tapp (Tcon (Just primMname, "Z3H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tcon (Just baseMname, zEncodeString "()"))))))))))),
+      (zEncodeString "touch#", Tforall ("o", Kopen) (Tapp (Tapp (Tcon tcArrow) ((Tvar "o"))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))))),
+      (zEncodeString "makeStablePtr#", Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tcon (Just primMname, zEncodeString "StablePtr#")) ((Tvar "a"))))))))),
+      (zEncodeString "deRefStablePtr#", Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "StablePtr#")) ((Tvar "a"))))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tvar "a"))))))),
+      (zEncodeString "eqStablePtr#", Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "StablePtr#")) ((Tvar "a"))))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "StablePtr#")) ((Tvar "a"))))) ((Tcon (Just primMname, zEncodeString "Int#")))))),
+      (zEncodeString "makeStableName#", Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tcon (Just primMname, zEncodeString "RealWorld")))))) ((Tapp (Tcon (Just primMname, zEncodeString "StableName#")) ((Tvar "a"))))))))),
+      (zEncodeString "eqStableName#", Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "StableName#")) ((Tvar "a"))))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "StableName#")) ((Tvar "a"))))) ((Tcon (Just primMname, zEncodeString "Int#")))))),
+      (zEncodeString "stableNameToInt#", Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "StableName#")) ((Tvar "a"))))) ((Tcon (Just primMname, zEncodeString "Int#"))))),
+      (zEncodeString "reallyUnsafePtrEquality#", Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) ((Tcon (Just primMname, zEncodeString "Int#")))))),
+      (zEncodeString "par#", Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) ((Tcon (Just primMname, zEncodeString "Int#"))))),
+      (zEncodeString "parGlobal#", Tforall ("a", Klifted) (Tforall ("b", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tvar "b"))) ((Tcon (Just primMname, zEncodeString "Int#"))))))))))),
+      (zEncodeString "parLocal#", Tforall ("a", Klifted) (Tforall ("b", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tvar "b"))) ((Tcon (Just primMname, zEncodeString "Int#"))))))))))),
+      (zEncodeString "parAt#", Tforall ("b", Klifted) (Tforall ("a", Klifted) (Tforall ("c", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tvar "b"))) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tvar "c"))) ((Tcon (Just primMname, zEncodeString "Int#"))))))))))))),
+      (zEncodeString "parAtAbs#", Tforall ("a", Klifted) (Tforall ("b", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tvar "b"))) ((Tcon (Just primMname, zEncodeString "Int#")))))))))))),
+      (zEncodeString "parAtRel#", Tforall ("a", Klifted) (Tforall ("b", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tvar "b"))) ((Tcon (Just primMname, zEncodeString "Int#")))))))))))),
+      (zEncodeString "parAtForNow#", Tforall ("b", Klifted) (Tforall ("a", Klifted) (Tforall ("c", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tvar "b"))) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tvar "c"))) ((Tcon (Just primMname, zEncodeString "Int#"))))))))))))),
+      (zEncodeString "dataToTag#", Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) ((Tcon (Just primMname, zEncodeString "Int#"))))),
+      (zEncodeString "tagToEnum#", Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tvar "a")))),
+      (zEncodeString "addrToHValue#", Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Addr#")))) ((Tapp (Tcon (Just primMname, "Z1H")) ((Tvar "a")))))),
+      (zEncodeString "mkApUpd0#", Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "BCO#")))) ((Tapp (Tcon (Just primMname, "Z1H")) ((Tvar "a")))))),
+      (zEncodeString "newBCO#", Tforall ("a", Klifted) (Tforall ("s", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "Array#")) ((Tvar "a"))))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "ByteArray#")))) (Tapp (Tapp (Tcon tcArrow) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tapp (Tcon (Just primMname, zEncodeString "State#")) ((Tvar "s"))))) ((Tcon (Just primMname, zEncodeString "BCO#"))))))))))))),
+      (zEncodeString "unpackClosure#", Tforall ("a", Klifted) (Tforall ("b", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) ((Tapp (Tapp (Tapp (Tcon (Just primMname, "Z3H")) ((Tcon (Just primMname, zEncodeString "Addr#")))) ((Tapp (Tcon (Just primMname, zEncodeString "Array#")) ((Tvar "b"))))) ((Tcon (Just primMname, zEncodeString "ByteArray#")))))))),
+      (zEncodeString "getApStackVal#", Tforall ("a", Klifted) (Tforall ("b", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) (Tapp (Tapp (Tcon tcArrow) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tapp (Tapp (Tcon (Just primMname, "Z2H")) ((Tcon (Just primMname, zEncodeString "Int#")))) ((Tvar "b")))))))),
+      (zEncodeString "seq", Tforall ("a", Klifted) (Tforall ("b", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) (Tapp (Tapp (Tcon tcArrow) ((Tvar "b"))) ((Tvar "b")))))),
+      (zEncodeString "inline", Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) ((Tvar "a")))),
+      (zEncodeString "lazy", Tforall ("a", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) ((Tvar "a")))),
+      (zEncodeString "unsafeCoerce#", Tforall ("a", Klifted) (Tforall ("b", Klifted) (Tapp (Tapp (Tcon tcArrow) ((Tvar "a"))) ((Tvar "b")))))]
+intLitTypes :: [Ty]
+intLitTypes = [
+   (Tcon (Just primMname, zEncodeString "Char#")),
+   (Tcon (Just primMname, zEncodeString "Int#")),
+   (Tcon (Just primMname, zEncodeString "Word#")),
+   (Tcon (Just primMname, zEncodeString "Int64#")),
+   (Tcon (Just primMname, zEncodeString "Word64#")),
+   (Tcon (Just primMname, zEncodeString "Addr#"))]
+ratLitTypes :: [Ty]
+ratLitTypes = [
+   (Tcon (Just primMname, zEncodeString "Double#")),
+   (Tcon (Just primMname, zEncodeString "Float#"))]
+charLitTypes :: [Ty]
+charLitTypes = [
+   (Tcon (Just primMname, zEncodeString "Char#"))]
+stringLitTypes :: [Ty]
+stringLitTypes = [
+   (Tcon (Just primMname, zEncodeString "Addr#"))]
+