diff --git a/demo/Main.hs b/demo/Main.hs
--- a/demo/Main.hs
+++ b/demo/Main.hs
@@ -58,8 +58,8 @@
 main :: IO ()
 main = do
   let value =
-        NetworkServiceAddress $
-          NetworkAddress
+        NetworkServiceAddress
+          $ NetworkAddress
             TcpTransportProtocol
             (IpHost (V4Ip 123))
             456
diff --git a/domain-cereal.cabal b/domain-cereal.cabal
--- a/domain-cereal.cabal
+++ b/domain-cereal.cabal
@@ -1,48 +1,89 @@
 cabal-version: 3.0
-
-name: domain-cereal
-version: 0.1
-synopsis: Integration of domain with cereal
-homepage: https://github.com/nikita-volkov/domain-cereal
-bug-reports: https://github.com/nikita-volkov/domain-cereal/issues
-author: Nikita Volkov <nikita.y.volkov@mail.ru>
-maintainer: Nikita Volkov <nikita.y.volkov@mail.ru>
-copyright: (c) 2021 Nikita Volkov
-license: MIT
-license-file: LICENSE
-build-type: Simple
+name:          domain-cereal
+version:       0.1.0.1
+synopsis:      Integration of domain with cereal
+homepage:      https://github.com/nikita-volkov/domain-cereal
+bug-reports:   https://github.com/nikita-volkov/domain-cereal/issues
+author:        Nikita Volkov <nikita.y.volkov@mail.ru>
+maintainer:    Nikita Volkov <nikita.y.volkov@mail.ru>
+copyright:     (c) 2021 Nikita Volkov
+license:       MIT
+license-file:  LICENSE
+build-type:    Simple
 
 source-repository head
-  type: git
+  type:     git
   location: git://github.com/nikita-volkov/domain-cereal.git
 
 library
-  hs-source-dirs: library
-  default-extensions: BangPatterns, BlockArguments, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DerivingVia, DeriveTraversable, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, InstanceSigs, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedLabels, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, StrictData, TemplateHaskell, TupleSections, TypeApplications, TypeFamilies, TypeOperators, UnboxedTuples
-  default-language: Haskell2010
-  exposed-modules:
-    DomainCereal
+  hs-source-dirs:     library
+  default-extensions:
+    NoImplicitPrelude
+    NoMonomorphismRestriction
+    BangPatterns
+    BlockArguments
+    ConstraintKinds
+    DataKinds
+    DefaultSignatures
+    DeriveDataTypeable
+    DeriveFoldable
+    DeriveFunctor
+    DeriveGeneric
+    DeriveTraversable
+    DerivingVia
+    EmptyDataDecls
+    FlexibleContexts
+    FlexibleInstances
+    FunctionalDependencies
+    GADTs
+    GeneralizedNewtypeDeriving
+    InstanceSigs
+    LambdaCase
+    LiberalTypeSynonyms
+    MagicHash
+    MultiParamTypeClasses
+    MultiWayIf
+    OverloadedLabels
+    OverloadedStrings
+    ParallelListComp
+    PatternGuards
+    QuasiQuotes
+    RankNTypes
+    RecordWildCards
+    ScopedTypeVariables
+    StandaloneDeriving
+    StrictData
+    TemplateHaskell
+    TupleSections
+    TypeApplications
+    TypeFamilies
+    TypeOperators
+    UnboxedTuples
+
+  default-language:   Haskell2010
+  exposed-modules:    DomainCereal
   other-modules:
-    DomainCereal.TH
     DomainCereal.Prelude
+    DomainCereal.TH
+
   build-depends:
-    base >=4.12 && <5,
-    cereal >=0.5 && <0.6,
-    domain-core >=0.1 && <0.2,
-    leb128-cereal >=1.2 && <1.3,
-    text >=1 && <3,
-    template-haskell >=2.14 && <3,
-    template-haskell-compat-v0208 >=0.1.7 && <0.2,
-    th-lego >=0.3 && <0.4,
+    , base >=4.12 && <5
+    , cereal >=0.5 && <0.6
+    , domain-core >=0.1 && <0.2
+    , leb128-cereal >=1.2 && <1.3
+    , template-haskell >=2.14 && <3
+    , template-haskell-compat-v0208 >=0.1.9 && <0.2
+    , text >=1 && <3
+    , th-lego >=0.3 && <0.4
 
 test-suite demo
-  type: exitcode-stdio-1.0
-  hs-source-dirs: demo
-  main-is: Main.hs
+  type:             exitcode-stdio-1.0
+  hs-source-dirs:   demo
+  main-is:          Main.hs
   default-language: Haskell2010
   build-depends:
-    cereal,
-    cereal-text >=0.1.0.2 && <0.2,
-    domain,
-    domain-cereal,
-    rerebase >=1.9 && <2,
+    , cereal
+    , cereal-text >=0.1.0.2 && <0.2
+    , domain
+    , domain-cereal
+    , rerebase >=1.9 && <2
diff --git a/library/DomainCereal/Prelude.hs b/library/DomainCereal/Prelude.hs
--- a/library/DomainCereal/Prelude.hs
+++ b/library/DomainCereal/Prelude.hs
@@ -26,7 +26,7 @@
 import Data.Fixed as Exports
 import Data.Foldable as Exports hiding (toList)
 import Data.Function as Exports hiding (id, (.))
-import Data.Functor as Exports
+import Data.Functor as Exports hiding (unzip)
 import Data.Functor.Compose as Exports
 import Data.Functor.Contravariant as Exports
 import Data.IORef as Exports
@@ -67,12 +67,10 @@
 import System.Mem as Exports
 import System.Mem.StableName as Exports
 import System.Timeout as Exports
-import Text.ParserCombinators.ReadP as Exports (ReadP, ReadS, readP_to_S, readS_to_P)
-import Text.ParserCombinators.ReadPrec as Exports (ReadPrec, readP_to_Prec, readPrec_to_P, readPrec_to_S, readS_to_Prec)
 import Text.Printf as Exports (hPrintf, printf)
 import Text.Read as Exports (Read (..), readEither, readMaybe)
 import Unsafe.Coerce as Exports
-import Prelude as Exports hiding (all, and, any, concat, concatMap, elem, fail, foldl, foldl1, foldr, foldr1, id, mapM, mapM_, maximum, minimum, notElem, or, product, sequence, sequence_, sum, (%), (.))
+import Prelude as Exports hiding (all, and, any, concat, concatMap, elem, fail, foldl, foldl1, foldr, foldr1, id, mapM, mapM_, maximum, minimum, notElem, or, product, sequence, sequence_, sum, (.))
 
-showAsText :: Show a => a -> Text
+showAsText :: (Show a) => a -> Text
 showAsText = show >>> fromString
diff --git a/library/DomainCereal/TH.hs b/library/DomainCereal/TH.hs
--- a/library/DomainCereal/TH.hs
+++ b/library/DomainCereal/TH.hs
@@ -10,8 +10,6 @@
 import qualified THLego.Lambdas as Lambdas
 import qualified TemplateHaskell.Compat.V0208 as Compat
 
--- *
-
 serializeInstanceD :: Model.TypeDec -> Dec
 serializeInstanceD (Model.TypeDec typeName typeDef) =
   InstanceD Nothing [] headType [putFunD, getFunD]
@@ -38,8 +36,6 @@
             components =
               length members
 
--- *
-
 sumPutFunD :: [(Name, Int)] -> Dec
 sumPutFunD members =
   FunD 'Cereal.put clauses
@@ -48,7 +44,7 @@
       zipWith memberClause members [0 ..]
       where
         memberClause (conName, components) conIdx =
-          Clause [Compat.conp conName componentPList] (NormalB body) []
+          Clause [Compat.conP conName componentPList] (NormalB body) []
           where
             componentNameList = enumAlphabeticNames components
             componentPList = componentNameList & fmap VarP
@@ -63,7 +59,7 @@
   FunD 'Cereal.put [clause]
   where
     clause =
-      Clause [Compat.conp conName componentPList] (NormalB body) []
+      Clause [Compat.conP conName componentPList] (NormalB body) []
       where
         componentNameList = enumAlphabeticNames components
         componentPList = componentNameList & fmap VarP
@@ -99,8 +95,6 @@
       where
         body =
           applicativeChainE (ConE conName) (replicate components (VarE 'Cereal.get))
-
--- *
 
 mconcatE :: [Exp] -> Exp
 mconcatE = AppE (VarE 'mconcat) . ListE
