diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,3 +3,7 @@
 ## 0.1.0.0 -- 2020-10-30
 
 * First version. Released on an unsuspecting world.
+
+## 0.2.0.0 -- 2020-11-12
+
+* Second version. Fixed issues with empty second elements in the tuples.
diff --git a/Languages/UniquenessPeriods/Vector/General/DebugG.hs b/Languages/UniquenessPeriods/Vector/General/DebugG.hs
--- a/Languages/UniquenessPeriods/Vector/General/DebugG.hs
+++ b/Languages/UniquenessPeriods/Vector/General/DebugG.hs
@@ -6,8 +6,8 @@
 -- Maintainer  :  olexandr543@yahoo.com
 --
 -- Generalization of the functionality of the DobutokO.Poetry.General.Debug
--- module from the @dobutokO-poetry-general-languages@ package. 
--- 
+-- module from the @dobutokO-poetry-general-languages@ package.
+--
 {-# LANGUAGE BangPatterns, FlexibleContexts #-}
 
 module Languages.UniquenessPeriods.Vector.General.DebugG (
@@ -58,6 +58,7 @@
   ->  UniqG2T2 t t2 a b -- ^ The data to be analyzed.
   -> UniquenessG1T2 t t2 a b -- ^ The maximum element in respect with the given parameters.
 maximumElBy k vN y
+ | VB.null . snd . get22 $ y = error "Languages.UniquenessPeriods.Vector.General.DebugG.maximumElBy: undefined for the empty second element in the tuple. "
  | compare k (VB.length vN) == GT = error "Languages.UniquenessPeriods.Vector.General.DebugG.maximumElBy: undefined for that amount of norms. "
  | compare k 0 == GT =
    let !maxK = VB.maximumBy (\(_,vN0,_) (_,vN1,_) -> compare (VB.unsafeIndex vN0 (k - 1)) (VB.unsafeIndex vN1 (k - 1))) . snd . get22 $ y
@@ -249,17 +250,24 @@
 uniquenessVariantsGN hd whspss f1 f2 f3 perms K vN frep data1 = uniquenessVariants2GNB hd f1 f2 f3 perms vN frep (subG whspss data1)
 {-# INLINE uniquenessVariantsGN #-}
 
--- | Finds out the group of maximum elements with respect of the @k@ \"properties\" (the most significant of which is the rightest one, then to the left less significant etc.),
--- which is given as the first argument, and then rearranges the input moving the elements equal by the first element in the triple to the maximum element
--- to the first element in the tuple.
+-- | Rearranges the last argument.
+-- Finds out the group of maximum elements with respect of the @k@ \"properties\" (the most significant of which is the rightest one,
+-- then to the left less significant etc.) of the second argument. The number of \"properties\" is given as the first argument. Then the function
+-- rearranges the last argument by moving the elements equal by the second element in the triple to the maximum element to the first element in
+-- the resulting tuple. The elements that are not equal to the maximum one are moved to the second element in the tuple.
+-- If the second element of the tuple is empty, then just returns the last argument.
 --
--- The last \"property\" is the first element in the 'VB.Vector' of \"properties\" (@[b] -> b@).
+-- The last by significance \"property\" is the first element in the 'VB.Vector' of \"properties\" (@[b] -> b@) (so that the order of significance is
+-- from the right to the left in the respective 'VB.Vector'). If the length of the vector of properties is greater than the first argument then
+-- the last element(s) in the vector do not participate in producing the result (are ignored).
 maximumElByVec ::
   (Eq a, Foldable t, InsertLeft t a, Monoid (t a), Monoid (t (t a)), Foldable t2, Ord b, Show a, Show b) => Int -- ^ The quantity of the represented as functions \"properties\" to be applied from the second argument. The order is from the right to the left.
   -> VB.Vector (t2 b -> b) -- ^ 'VB.Vector' of the represented as functions \"properties\" to be applied consequently.
   -> UniqG2T2 t t2 a b -- ^ The data to be analyzed.
   -> UniqG2T2 t t2 a b
-maximumElByVec k vN x = let !uniq = maximumElBy k vN x in let !snD = secondFrom3 uniq in UL2 ((\(!v1,!v2) -> ((fst . get22 $ x) `mappend` v1,v2)) .
+maximumElByVec k vN x
+ | VB.null . snd . get22 $ x = x
+ | otherwise = let !uniq = maximumElBy k vN x in let !snD = secondFrom3 uniq in UL2 ((\(!v1,!v2) -> ((fst . get22 $ x) `mappend` v1,v2)) .
       VB.unstablePartition (equalSnDs snD . secondFrom3) . snd . get22 $ x)
 {-# NOINLINE maximumElByVec #-}
 
@@ -318,7 +326,7 @@
   -> Int -- ^ The quantity of the represented as functions \"properties\" to be applied from the second argument. The order is from the right to the left.
   -> VB.Vector (t2 b -> b) -- ^ 'VB.Vector' of the represented as functions \"properties\" to be applied consequently.
   -> FuncRep (t a) (VB.Vector c) (t2 b) -- ^ It includes the defined earlier variant with data constructor 'D2', but additionally allows to use just single argument with data constructor 'U1'
-  -> t a -- ^ The data to be processed. 
+  -> t a -- ^ The data to be processed.
   -> UniqG2T2 t t2 a b
 uniqNProperties2GN hd whspss f1 f2 f3 perms rr n k vN frep v
  | n <= 0 = UL2 (VB.empty,VB.empty)
diff --git a/phonetic-languages-general.cabal b/phonetic-languages-general.cabal
--- a/phonetic-languages-general.cabal
+++ b/phonetic-languages-general.cabal
@@ -2,7 +2,7 @@
 -- further documentation, see http://haskell.org/cabal/users-guide/
 
 name:                phonetic-languages-general
-version:             0.1.0.0
+version:             0.2.0.0
 synopsis:            A generalization of the uniqueness-periods-vector-general functionality.
 description:         Is intended to use more functionality of the Data.Foldable, Data.SubG, Data.Monoid and Data.Vector modules.
 homepage:            https://hackage.haskell.org/phonetic-languages-general
