diff --git a/Data/Type/Ordinal.hs b/Data/Type/Ordinal.hs
--- a/Data/Type/Ordinal.hs
+++ b/Data/Type/Ordinal.hs
@@ -97,9 +97,13 @@
 unsafeFromInt n =
     case (promote n :: Monomorphic (Sing :: Nat -> *)) of
       Monomorphic sn ->
-        case SS sn %:<<= (sing :: SNat n) of
-          STrue -> sNatToOrd' (sing :: SNat n) sn
-          SFalse -> error "Bound over!"
+#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ < 707
+        case singInstance sn of
+          SingInstance ->
+#endif
+           case SS sn %:<<= (sing :: SNat n) of
+             STrue -> sNatToOrd' (sing :: SNat n) sn
+             SFalse -> error "Bound over!"
 
 -- | 'sNatToOrd'' @n m@ injects @m@ as @Ordinal n@.
 sNatToOrd' :: (S m :<<= n) ~ True => SNat n -> SNat m -> Ordinal n
@@ -119,7 +123,12 @@
 ordToSNat' OZ = CastedOrdinal SZ
 ordToSNat' (OS on) =
   case ordToSNat' on of
-    CastedOrdinal m -> CastedOrdinal (SS m)
+    CastedOrdinal m ->
+#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ < 707      
+      case singInstance m of
+        SingInstance ->
+#endif
+          CastedOrdinal (SS m)
 
 -- | Convert @Ordinal n@ into monomorphic @SNat@
 ordToSNat :: Ordinal n -> Monomorphic (Sing :: Nat -> *)
diff --git a/type-natural.cabal b/type-natural.cabal
--- a/type-natural.cabal
+++ b/type-natural.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                type-natural
-version:             0.2.3.0
+version:             0.2.3.1
 synopsis:            Type-level natural and proofs of their properties.
 description:         Type-level natural numbers and proofs of their properties.
 homepage:            https://github.com/konn/type-natural
