diff --git a/hs-term-emulator.cabal b/hs-term-emulator.cabal
--- a/hs-term-emulator.cabal
+++ b/hs-term-emulator.cabal
@@ -1,6 +1,6 @@
 cabal-version:      2.4
 name:               hs-term-emulator
-version:            0.1.0.1
+version:            0.1.0.3
 synopsis:           Terminal Emulator written in 100% Haskell
 description:        See: https://github.com/bitc/hs-term-emulator#readme
 homepage:           https://github.com/bitc/hs-term-emulator
@@ -29,12 +29,13 @@
     System.Terminal.Emulator.Term
     System.Terminal.Emulator.Term.Process
     System.Terminal.Emulator.Term.Resize
+    System.Terminal.Emulator.Term.TermChange
     System.Terminal.Emulator.TermLines
 
   build-depends:
     , ansi-terminal  ^>=0.11
     , attoparsec     ^>=0.14.1
-    , base           ^>=4.14.1.0
+    , base           >=4.10     && <5
     , bytestring
     , containers     ^>=0.6.5.1
     , lens           ^>=5.0.1
@@ -55,7 +56,7 @@
   build-depends:
     , ansi-terminal     ^>=0.11
     , attoparsec        ^>=0.14.1
-    , base              ^>=4.14
+    , base              >=4.10     && <5
     , hs-term-emulator
     , hspec             ^>=2.8.2
     , text
@@ -75,7 +76,7 @@
   other-modules:
   hs-source-dirs:   bench
   build-depends:
-    , base              ^>=4.14
+    , base              >=4.10    && <5
     , criterion         ^>=1.5.9.0
     , hs-term-emulator
 
diff --git a/src/System/Terminal/Emulator/Term/TermChange.hs b/src/System/Terminal/Emulator/Term/TermChange.hs
new file mode 100644
--- /dev/null
+++ b/src/System/Terminal/Emulator/Term/TermChange.hs
@@ -0,0 +1,5 @@
+module System.Terminal.Emulator.Term.TermChange where
+
+data TermChange
+  = MoveCursor !Int !Int
+  | X
