diff --git a/ChangeLog.md b/ChangeLog.md
new file mode 100644
--- /dev/null
+++ b/ChangeLog.md
@@ -0,0 +1,22 @@
+# Changelog for symmetry-operations-symbols
+
+## 0.0.2.1  -- 2020-08-09
+
+* [jpn] ghc-8.4.4及び8.6.4でのビルド失敗の修正
+* [jpn] 依存関係の変更
+
+## 0.0.2.0  -- 2020-08-09
+
+* [jpn] api変更
+* [jpn] ライセンス変更
+
+## 0.0.1.3  -- 2020-07-21
+
+* [jpn] ghc8.10対応
+
+## 0.0.1.0  -- 2020-07-20
+
+* First version. Released on an unsuspecting world.
+
+## Unreleased changes
+
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -19,8 +19,8 @@
 
 ```
 extra-deps:
-- matrix-as-xyz-0.1.2.1
-- symmetry-operations-symbols-0.0.2.0
+- matrix-as-xyz-0.1.2.2
+- symmetry-operations-symbols-0.0.2.1
 ```
 
 Edit dependencies part of package.yaml like below.
diff --git a/src/Data/Matrix/SymmetryOperationsSymbols.hs b/src/Data/Matrix/SymmetryOperationsSymbols.hs
--- a/src/Data/Matrix/SymmetryOperationsSymbols.hs
+++ b/src/Data/Matrix/SymmetryOperationsSymbols.hs
@@ -1,5 +1,4 @@
 {-# LANGUAGE FlexibleInstances, CPP #-}
-
 {-|
 Module      : Data.Matrix.SymmetryOperationsSymbols
 Description : Read and Display Geometric representation of symmetry operation
@@ -49,10 +48,9 @@
 -- for doctest
 import Data.Matrix.AsXYZ (fromXYZ,prettyXYZ)
 
-#if MIN_VERSION_base(4,11,0)
+#if MIN_VERSION_base(4,13,0)
 import Control.Monad.Fail (MonadFail(..))
-import qualified Control.Monad.Fail as Fail
-instance Fail.MonadFail (Either String) where
+instance MonadFail (Either String) where
   fail = Left
 #endif
 
@@ -75,7 +73,7 @@
 --
 -- jpn) 与えられた対称操作の行列から、対称操作の幾何的表現を導出
 --
-#if MIN_VERSION_base(4,11,0)
+#if MIN_VERSION_base(4,13,0)
 fromMatrix' :: (Integral a, MonadFail f) => Matrix (Ratio a) -> f String
 #else
 fromMatrix' :: (Monad m, Integral a) => Matrix (Ratio a) -> m String
@@ -91,7 +89,7 @@
 --
 -- jpn) 与えられた対称操作の行列から、対称操作の幾何的表現を導出
 --
-#if MIN_VERSION_base(4,11,0)
+#if MIN_VERSION_base(4,13,0)
 readMatrix' :: (MonadFail m, Integral a) => Matrix (Ratio a) -> m (SymopGeom a)
 #else
 readMatrix' :: (Monad m, Integral a) => Matrix (Ratio a) -> m (SymopGeom a)
@@ -137,7 +135,7 @@
             -> Either ParseError (Matrix (Ratio a)) -- ^ 3x4 Matrix
 toMatrixHex st = parse hexagonal st st
 
-#if MIN_VERSION_base(4,11,0)
+#if MIN_VERSION_base(4,13,0)
 liftError :: MonadFail m => Either ParseError a -> m a
 #else
 liftError :: Monad m => Either ParseError a -> m a
diff --git a/src/Data/Matrix/SymmetryOperationsSymbols/GlideOrReflectionCase.hs b/src/Data/Matrix/SymmetryOperationsSymbols/GlideOrReflectionCase.hs
--- a/src/Data/Matrix/SymmetryOperationsSymbols/GlideOrReflectionCase.hs
+++ b/src/Data/Matrix/SymmetryOperationsSymbols/GlideOrReflectionCase.hs
@@ -30,12 +30,12 @@
 -- import qualified Data.Matrix.SymmetryOperationsSymbols.SymmetryOperation as S
 import qualified Data.Matrix.SymmetryOperationsSymbols.SymopGeom as S
 
-#if MIN_VERSION_base(4,11,0)
+#if MIN_VERSION_base(4,13,0)
 import Control.Monad.Fail (MonadFail(..))
 #endif
 
 -- | Case (ii) (c) W corresponds to a (glide) reflection
-#if MIN_VERSION_base(4,11,0)
+#if MIN_VERSION_base(4,13,0)
 glideOrReflectionCase :: (Integral a, MonadFail f) => Matrix (Ratio a) -> f (S.SymopGeom a)
 #else
 glideOrReflectionCase :: (Monad m, Integral a) => Matrix (Ratio a) -> m (S.SymopGeom a)
@@ -85,7 +85,7 @@
 solvingEquation'' :: Integral a => Matrix (Ratio a) -> Maybe [Ratio a]
 solvingEquation'' mat = adjustAnswerOnPlane mat . toList =<< solvingEquation' mat
 
-#if MIN_VERSION_base(4,11,0)
+#if MIN_VERSION_base(4,13,0)
 solvingEquation :: (Integral a, MonadFail f) => Matrix (Ratio a) -> f [Ratio a]
 #else
 solvingEquation :: (Integral a, Monad m) => Matrix (Ratio a) -> m [Ratio a]
diff --git a/src/Data/Matrix/SymmetryOperationsSymbols/RotInversionCase.hs b/src/Data/Matrix/SymmetryOperationsSymbols/RotInversionCase.hs
--- a/src/Data/Matrix/SymmetryOperationsSymbols/RotInversionCase.hs
+++ b/src/Data/Matrix/SymmetryOperationsSymbols/RotInversionCase.hs
@@ -28,19 +28,19 @@
 --import Data.Matrix.SymmetryOperationsSymbols.SymmetryOperation
 import Data.Matrix.SymmetryOperationsSymbols.SymopGeom
 
-#if MIN_VERSION_base(4,11,0)
+#if MIN_VERSION_base(4,13,0)
 import Control.Monad.Fail (MonadFail(..))
 #endif
 
 -- | Case (ii) (b) W corresponds to an n-fold rotation
-#if MIN_VERSION_base(4,11,0)
+#if MIN_VERSION_base(4,13,0)
 rotInversionCase :: (Integral a, MonadFail f) => Matrix (Ratio a) -> f (SymopGeom a)
 #else
 rotInversionCase :: (Monad m, Integral a) => Matrix (Ratio a) -> m (SymopGeom a)
 #endif
 rotInversionCase m = arrange m <$> calc m
 
-#if MIN_VERSION_base(4,11,0)
+#if MIN_VERSION_base(4,13,0)
 calc :: (MonadFail m, Integral a) => Matrix (Ratio a) -> m ([Ratio a], Matrix (Ratio a))
 #else
 calc :: (Monad m, Integral a) => Matrix (Ratio a) -> m ([Ratio a], Matrix (Ratio a))
@@ -88,7 +88,7 @@
 wl mat = elementwise (+) (wg mat) (transPart mat)
 
 -- (ii) (a) solving equation (W,w)x = x
-#if MIN_VERSION_base(4,11,0)
+#if MIN_VERSION_base(4,13,0)
 solvingEquation1 :: (MonadFail m, Integral a) => Matrix (Ratio a) -> m (Matrix (Ratio a))
 #else
 solvingEquation1 :: (Monad m, Integral a) => Matrix (Ratio a) -> m (Matrix (Ratio a))
@@ -107,7 +107,7 @@
     pow2 m = multStd m m
     w2 = pow2 (rotPart mat)
 
-#if MIN_VERSION_base(4,11,0)
+#if MIN_VERSION_base(4,13,0)
 solvingEquation2 :: (Integral a, MonadFail f) => Matrix (Ratio a) -> f [Ratio a]
 #else
 solvingEquation2 :: (Monad m, Integral a) => Matrix (Ratio a) -> m [Ratio a]
diff --git a/src/Data/Matrix/SymmetryOperationsSymbols/RotationCase.hs b/src/Data/Matrix/SymmetryOperationsSymbols/RotationCase.hs
--- a/src/Data/Matrix/SymmetryOperationsSymbols/RotationCase.hs
+++ b/src/Data/Matrix/SymmetryOperationsSymbols/RotationCase.hs
@@ -29,12 +29,12 @@
 --import Data.Matrix.SymmetryOperationsSymbols.SymmetryOperation
 import Data.Matrix.SymmetryOperationsSymbols.SymopGeom
 
-#if MIN_VERSION_base(4,11,0)
-import Control.Monad.Fail (MonadFail(..))
+#if MIN_VERSION_base(4,13,0)
+import Control.Monad.Fail (MonadFail)
 #endif
 
 -- | Case (ii) (a) W corresponds to a rotoinversion
-#if MIN_VERSION_base(4,11,0)
+#if MIN_VERSION_base(4,13,0)
 nFoldRotationCase :: (Integral a, MonadFail f) => Matrix (Ratio a) -> f (SymopGeom a)
 #else
 nFoldRotationCase :: (Monad m, Integral a) => Matrix (Ratio a) -> m (SymopGeom a)
@@ -108,7 +108,7 @@
   sol <- solvingEquation' mat
   adjustAnswerOnAxis mat (toList sol)
 
-#if MIN_VERSION_base(4,11,0)
+#if MIN_VERSION_base(4,13,0)
 solvingEquation :: (Integral a, MonadFail f) => Matrix (Ratio a) -> f [Ratio a]
 #else
 solvingEquation :: (Monad m, Integral a) => Matrix (Ratio a) -> m [Ratio a]
diff --git a/symmetry-operations-symbols.cabal b/symmetry-operations-symbols.cabal
--- a/symmetry-operations-symbols.cabal
+++ b/symmetry-operations-symbols.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: d049352960db9423c5cc3e872b002a336e32458f133a79ca2dca62268afed868
+-- hash: 5f2b0e4753d93beec7a429cb5e6b278905d59adf85897b9b854463435756f181
 
 name:           symmetry-operations-symbols
-version:        0.0.2.0
+version:        0.0.2.1
 synopsis:       Derivation of symbols and coordinate triplets Library
 description:    Please see the README on GitHub at <https://github.com/narumij/symmetry-operations-symbols#readme>
 category:       Chemistry
@@ -21,6 +21,7 @@
 build-type:     Simple
 extra-source-files:
     README.md
+    ChangeLog.md
 
 source-repository head
   type: git
@@ -45,33 +46,28 @@
   hs-source-dirs:
       src
   build-depends:
-      QuickCheck
-    , base >=4.8 && <5
-    , doctest
-    , hspec
-    , matrix >=0.3.5 && <4
-    , matrix-as-xyz >=0.1.1 && <0.2
-    , parsec >=3.1 && <4
+      base >=4.8 && <5
+    , matrix >=0.1 && <0.4
+    , matrix-as-xyz >=0.1 && <0.2
+    , parsec >=3 && <4
   default-language: Haskell2010
 
-test-suite doctest
+test-suite symmetry-operations-symbols-doctest
   type: exitcode-stdio-1.0
   main-is: test/doctests.hs
   other-modules:
       Paths_symmetry_operations_symbols
   ghc-options: -threaded -rtsopts -with-rtsopts=-N
   build-depends:
-      QuickCheck
-    , base >=4.8 && <5
+      base >=4.8 && <5
     , doctest
-    , hspec
-    , matrix >=0.3.5 && <4
-    , matrix-as-xyz >=0.1.1 && <0.2
-    , parsec >=3.1 && <4
+    , matrix >=0.1 && <0.4
+    , matrix-as-xyz >=0.1 && <0.2
+    , parsec >=3 && <4
     , symmetry-operations-symbols
   default-language: Haskell2010
 
-test-suite spec-test
+test-suite symmetry-operations-symbols-test
   type: exitcode-stdio-1.0
   main-is: Spec.hs
   other-modules:
@@ -87,10 +83,9 @@
   build-depends:
       QuickCheck
     , base >=4.8 && <5
-    , doctest
     , hspec
-    , matrix >=0.3.5 && <4
-    , matrix-as-xyz >=0.1.1 && <0.2
-    , parsec >=3.1 && <4
+    , matrix >=0.1 && <0.4
+    , matrix-as-xyz >=0.1 && <0.2
+    , parsec >=3 && <4
     , symmetry-operations-symbols
   default-language: Haskell2010
