diff --git a/serokell-util.cabal b/serokell-util.cabal
--- a/serokell-util.cabal
+++ b/serokell-util.cabal
@@ -1,5 +1,5 @@
 name:                serokell-util
-version:             0.1.2.4
+version:             0.1.3.0
 synopsis:            General-purpose functions by Serokell
 homepage:            https://github.com/serokell/serokell-util
 license:             MIT
@@ -96,9 +96,10 @@
   default-language:    Haskell2010
   ghc-options:         -Wall -fno-warn-orphans
   default-extensions:  OverloadedStrings
-                     , RecordWildCards
-                     , DeriveDataTypeable
-                     , GeneralizedNewtypeDeriving
+                       RecordWildCards
+                       DeriveDataTypeable
+                       GeneralizedNewtypeDeriving
+                       TypeApplications
 
 test-suite serokell-test
   main-is:             Test.hs
diff --git a/src/Serokell/Data/Memory/Units.hs b/src/Serokell/Data/Memory/Units.hs
--- a/src/Serokell/Data/Memory/Units.hs
+++ b/src/Serokell/Data/Memory/Units.hs
@@ -28,7 +28,6 @@
        , convertUnit
        ) where
 
-import           Control.DeepSeq        (NFData)
 import           Data.Binary            (Binary)
 import           Data.Proxy             (Proxy (Proxy))
 import           Data.SafeCopy          (SafeCopy)
@@ -97,8 +96,8 @@
     Byte Integer
     deriving (Show,Eq,Num,Typeable,Integral,Real,Enum,Ord,Generic,Serialize,Binary, Arbitrary)
 
-instance NFData Byte
 instance SafeCopy Byte
+
 instance MemoryUnit Byte where
     bytesMultiplier Proxy = pow10 0
 
@@ -106,19 +105,19 @@
     Kilobyte Integer
     deriving (Show,Eq,Num,Typeable,Integral,Real,Enum,Ord,Generic,Serialize,Arbitrary)
 
-instance NFData Kilobyte
 instance SafeCopy Kilobyte
+
 instance MemoryUnit Kilobyte where
     bytesMultiplier Proxy = pow10 3
 
--- P.S. Feel free to add more.
+-- P. S. Feel free to add more.
 
 newtype Megabyte =
     Megabyte Integer
     deriving (Show,Eq,Num,Typeable,Integral,Real,Enum,Ord,Generic,Serialize,Arbitrary)
 
-instance NFData Megabyte
 instance SafeCopy Megabyte
+
 instance MemoryUnit Megabyte where
     bytesMultiplier Proxy = pow10 6
 
@@ -126,8 +125,8 @@
     Gigabyte Integer
     deriving (Show,Eq,Num,Typeable,Integral,Real,Enum,Ord,Generic,Serialize,Arbitrary)
 
-instance NFData Gigabyte
 instance SafeCopy Gigabyte
+
 instance MemoryUnit Gigabyte where
     bytesMultiplier Proxy = pow10 9
 
@@ -135,7 +134,7 @@
     Terabyte Integer
     deriving (Show,Eq,Num,Typeable,Integral,Real,Enum,Ord,Generic,Serialize,Arbitrary)
 
-instance NFData Terabyte
 instance SafeCopy Terabyte
+
 instance MemoryUnit Terabyte where
     bytesMultiplier Proxy = pow10 12
diff --git a/src/Serokell/Util/Verify.hs b/src/Serokell/Util/Verify.hs
--- a/src/Serokell/Util/Verify.hs
+++ b/src/Serokell/Util/Verify.hs
@@ -1,17 +1,37 @@
+{-# LANGUAGE TypeApplications #-}
+
 -- | General-purpose utility functions
 
 module Serokell.Util.Verify
        ( VerificationRes (..)
+
+       -- * Helpers
        , isVerFailure
        , isVerSuccess
+       , verResToMonadError
 
+       -- * Verification
        , verifyGeneric
+
+       -- * Prety printing
+       , buildVerResFull
+       , buildVerResSingle
+       , formatAllErrors
+       , formatFirstError
+       , verResFullF
+       , verResSingleF
        ) where
 
-import           Data.Semigroup (Semigroup)
-import qualified Data.Semigroup as Semigroup
-import qualified Data.Text      as T
+import           Control.Monad.Except   (MonadError, throwError)
+import           Data.Semigroup         (Semigroup)
+import qualified Data.Semigroup         as Semigroup
+import           Data.Text              (Text)
+import qualified Data.Text              as T
+import qualified Data.Text.Lazy.Builder as B
+import           Formatting             (Format, later, sformat)
 
+import           Serokell.Util.Text     (listBuilder)
+
 data VerificationRes
     = VerSuccess
     | VerFailure ![T.Text]
@@ -50,3 +70,53 @@
     | otherwise = VerFailure messages
   where
     messages = map snd . filter (not . fst) $ errors
+
+----------------------------------------------------------------------------
+-- Pretty printing
+----------------------------------------------------------------------------
+
+-- | Format VerificationRes in a pretty way using all errors messages
+-- for VerFailure.
+buildVerResFull :: VerificationRes -> B.Builder
+buildVerResFull VerSuccess          = buildVerResImpl Nothing
+buildVerResFull (VerFailure errors) = buildVerResImpl $ Just errors
+
+-- | Format VerificationRes in a pretty way using only first message
+-- for VerFailure.
+buildVerResSingle :: VerificationRes -> B.Builder
+buildVerResSingle VerSuccess          = buildVerResImpl Nothing
+-- [SU-1] Use NonEmpty instead of unsafe head.
+buildVerResSingle (VerFailure errors) = buildVerResImpl $ Just $ [head errors]
+
+buildVerResImpl :: Maybe [T.Text] -> B.Builder
+buildVerResImpl Nothing       = "success"
+buildVerResImpl (Just errors) =
+    "failure: " `mappend` listBuilder @Text @Text @Text "[" "; " "]" errors
+
+-- | Formatter based on buildVerResFull.
+verResFullF :: Format r (VerificationRes -> r)
+verResFullF = later buildVerResFull
+
+-- | Formatter based on buildVerResSingle.
+verResSingleF :: Format r (VerificationRes -> r)
+verResSingleF = later buildVerResSingle
+
+-- These two functions can have more general type.
+
+-- | Pretty printer for errors from VerFailure, all errors are printed.
+formatAllErrors :: [Text] -> Text
+formatAllErrors = sformat verResFullF . VerFailure
+
+-- | Pretty printer for errors from VerFailure, only first error is printed.
+formatFirstError :: [Text] -> Text
+formatFirstError = sformat verResSingleF . VerFailure
+
+----------------------------------------------------------------------------
+-- Conversion to MonadError (including Either)
+----------------------------------------------------------------------------
+
+verResToMonadError
+    :: MonadError e m
+    => ([Text] -> e) -> VerificationRes -> m ()
+verResToMonadError _ VerSuccess          = pure ()
+verResToMonadError f (VerFailure errors) = throwError $ f errors
