diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,12 @@
 `arch-hs` uses [PVP Versioning][1].
 The changelog is available [on GitHub][2].
 
+## 0.7.1.0
+
+* Bump ghc version to 8.10.4
+
+* Fix some output formats
+
 ## 0.7.0.0
 
 * Support dumping output of `arch-hs` to JSON
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
 # arch-hs
 
 [![Hackage](https://img.shields.io/hackage/v/arch-hs.svg?logo=haskell)](https://hackage.haskell.org/package/arch-hs)
-![Dependency](https://img.shields.io/hackage-deps/v/arch-hs)
+[![Dependency](https://img.shields.io/hackage-deps/v/arch-hs)](https://packdeps.haskellers.com/feed?needle=arch-hs)
 [![MIT license](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
 
 | Env              | CI                                                                                                                        |
@@ -11,7 +11,7 @@
 
 A program generating PKGBUILD for hackage packages. Special thanks to [felixonmars](https://github.com/felixonmars/).
 
-**Notice that `arch-hs` will always support only the latest GHC version.**
+**Notice that `arch-hs` will always support only the latest GHC version used by Arch Linux.**
 
 
 ## Introduction
diff --git a/arch-hs.cabal b/arch-hs.cabal
--- a/arch-hs.cabal
+++ b/arch-hs.cabal
@@ -1,6 +1,6 @@
 cabal-version:      2.4
 name:               arch-hs
-version:            0.7.0.0
+version:            0.7.1.0
 synopsis:           Distribute hackage packages to archlinux
 description:
   @arch-hs@ is a command-line program, which simplifies the process of producing
@@ -23,7 +23,7 @@
   CHANGELOG.md
   README.md
 
-tested-with:        GHC ==8.10.3
+tested-with:        GHC ==8.10.4
 
 source-repository head
   type:     git
@@ -41,7 +41,7 @@
     , arch-web                     ^>=0.1.0
     , base                         >=4.12   && <5
     , bytestring
-    , Cabal                        ^>=3.2.0
+    , Cabal                        >=3.2    && <3.5
     , conduit                      ^>=1.3.2
     , conduit-extra                ^>=1.3.5
     , containers
diff --git a/diff/Diff.hs b/diff/Diff.hs
--- a/diff/Diff.hs
+++ b/diff/Diff.hs
@@ -12,7 +12,7 @@
 import Data.Algorithm.Diff
 import qualified Data.ByteString.Lazy as LBS
 import qualified Data.Map.Strict as Map
-import Data.Maybe (fromJust)
+import Data.Maybe (catMaybes, fromJust)
 import Distribution.ArchHs.CommunityDB (versionInCommunity)
 import Distribution.ArchHs.Core (evalConditionTree)
 import Distribution.ArchHs.Exception
@@ -237,29 +237,31 @@
       diffNew = mconcat $ unDiff <$> filterSecondDiff diff
       annF b = if b then annGreen else annRed
       pp b (Right (name, range, v, False)) =
-        dquotes (annF b $ viaPretty name)
-          <+> "is required to be in range"
-          <+> parens (annF b $ viaPretty range)
-          <> comma
-          <+> "but"
-          <+> ppCommunity
-          <+> "provides"
-          <+> parens (annF b $ viaPretty v)
-          <> dot
-      pp _ (Right _) = ""
+        Just $
+          dquotes (annF b $ viaPretty name)
+            <+> "is required to be in range"
+            <+> parens (annF b $ viaPretty range)
+            <> comma
+            <+> "but"
+            <+> ppCommunity
+            <+> "provides"
+            <+> parens (annF b $ viaPretty v)
+            <> dot
+      pp _ (Right _) = Nothing
       pp b (Left (name, range)) =
-        dquotes (annF b $ viaPretty name)
-          <+> "is required to be in range"
-          <+> parens (annF b $ viaPretty range)
-          <> comma
-          <+> "but"
-          <+> ppCommunity
-          <+> "does not provide this package"
-          <> dot
+        Just $
+          dquotes (annF b $ viaPretty name)
+            <+> "is required to be in range"
+            <+> parens (annF b $ viaPretty range)
+            <> comma
+            <+> "but"
+            <+> ppCommunity
+            <+> "does not provide this package"
+            <> dot
 
   new <- fmap (pp True) <$> mapM inRange diffNew
   old <- fmap (pp False) <$> mapM inRange diffOld
-  return $ vsep [cat old, cat new]
+  return $ vsep [cat $ catMaybes old, cat $ catMaybes new]
 
 dep :: Doc AnsiStyle -> VersionedList -> VersionedList -> Doc AnsiStyle
 dep s va vb =
diff --git a/src/Distribution/ArchHs/Core.hs b/src/Distribution/ArchHs/Core.hs
--- a/src/Distribution/ArchHs/Core.hs
+++ b/src/Distribution/ArchHs/Core.hs
@@ -49,7 +49,7 @@
 archEnv _ (OS _) = Right False
 archEnv _ (Arch X86_64) = Right True
 archEnv _ (Arch _) = Right False
-archEnv _ (Impl GHC range) = Right $ withinRange (mkVersion [8, 10, 3]) range
+archEnv _ (Impl GHC range) = Right $ withinRange (mkVersion [8, 10, 4]) range
 archEnv _ (Impl _ _) = Right False
 archEnv assignment f@(Flag f') = go f $ lookupFlagAssignment f' assignment
   where
diff --git a/src/Distribution/ArchHs/PP.hs b/src/Distribution/ArchHs/PP.hs
--- a/src/Distribution/ArchHs/PP.hs
+++ b/src/Distribution/ArchHs/PP.hs
@@ -127,8 +127,8 @@
     ( \(i :: Int, SolvedDependency {..}) ->
         let prefix = if i == length _pkgDeps then " └─" else " ├─"
          in case _depProvider of
-              (Just x) -> (annGreen $ prefix <> viaPretty _depName <+> tupled (viaShow <$> _depType), dui <+> annCyan (viaShow x))
-              _ -> (annYellow . annBold $ prefix <> viaPretty _depName <+> tupled (viaShow <$> _depType), indent 16 cuo)
+              (Just x) -> (annGreen $ prefix <> viaPretty _depName <+> parens (hsep $ punctuate comma (viaShow <$> _depType)), dui <+> annCyan (viaShow x))
+              _ -> (annYellow . annBold $ prefix <> viaPretty _depName <+> parens (hsep $ punctuate comma (viaShow <$> _depType)), indent 16 cuo)
     )
     (zip [1 ..] _pkgDeps)
 prettySolvedPkg ProvidedPackage {..} = [(annGreen $ viaPretty _pkgName, dui <+> annCyan (viaShow _pkgProvider))]
