diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -75,3 +75,12 @@
 
 * Seventh version revised B. Added additional information so that also is displayed the percentages of intervals in the uniqVec03 executable. Parallelization
 (and mostly performance) optimizations for uniqVec03 executable.
+
+## 0.8.0.0 -- 2020-10-05
+
+* Eigth version. Added a new way to compare the results for processment of the uniqVec03 executable. Added the fifth command line argument to control this
+comparisons. Added a new lightweight dependency of lists-flines. Changed the names of the executables.
+uniqVec01 -> linVariants
+uniqVec02 -> rewritePoem
+uniqVec03 -> processText
+
diff --git a/Proportion/Main.hs b/Proportion/Main.hs
--- a/Proportion/Main.hs
+++ b/Proportion/Main.hs
@@ -21,7 +21,7 @@
 
 {-# OPTIONS_GHC -threaded -rtsopts #-}
 
-{-# LANGUAGE CPP, BangPatterns #-}
+{-# LANGUAGE CPP, BangPatterns, FlexibleInstances, MultiParamTypeClasses #-}
 
 module Main where
 
@@ -36,7 +36,7 @@
 import Text.Read (readMaybe)
 import qualified Data.Vector as V
 import String.Languages.UniquenessPeriods.Vector
-import Languages.UniquenessPeriods.Vector.General.Debug
+import Languages.UniquenessPeriods.Vector.General.Debug hiding (newLineEnding)
 import Languages.UniquenessPeriods.Vector.Properties
 import Melodics.Ukrainian
 import System.Environment
@@ -47,6 +47,7 @@
 import Numeric (showFFloat)
 import Languages.UniquenessPeriods.Vector.Filters
 import GHC.Float (int2Float)
+import GHC.Real (ceiling)
 import Data.List (sort)
 import Data.Char (isAlpha)
 import Numeric.Stats
@@ -56,29 +57,75 @@
 mconcat = concat
 #endif
 #endif
+import Data.Lists.FLines
 
+instance GetTransL (FLines [String]) [String] where
+  getTL g (F1 xss) = g xss
+  getTL g (FL xsss) = mconcat . map g $ xsss
+
 main :: IO ()
 main = do
   args <- getArgs
   let !file = concat . take 1 $ args  -- The first command line arguments except those ones that are RTS arguments
-      !gz = fromMaybe 9 (readMaybe (concat . take 1 . drop 1 $ args)::(Maybe Int)) -- The second command line arguments except those ones that are RTS arguments
-      !printLine = fromMaybe 0 (readMaybe (concat . take 1 . drop 2 $ args)::(Maybe Int)) -- The third command line arguments except those ones that are RTS arguments. Set to 1 if you would like to print the current line within the information
-      !toOneLine = fromMaybe 0 (readMaybe (concat . take 1 . drop 3 $ args)::(Maybe Int)) -- The fourth command line arguments except those ones that are RTS arguments. Seti to 1 if you would like to convert the text into one single line before applying to it the processment (it can be more conceptually consistent in such a case)
+      !printLine = fromMaybe 0 (readMaybe (concat . take 1 . drop 2 $ args)::(Maybe Int)) -- The third command line argument except those ones that are RTS arguments. Set to 1 if you would like to print the current line within the information
+      !toOneLine = fromMaybe 0 (readMaybe (concat . take 1 . drop 3 $ args)::(Maybe Int)) -- The fourth command line argument except those ones that are RTS arguments. Set to 1 if you would like to convert the text into one single line before applying to it the processment (it can be more conceptually consistent in such a case)
+      !compareMode = fromMaybe 0 (readMaybe (concat . take 1 . drop 4 $ args)::(Maybe Int)) -- The fifth command line argument except those ones that are RTS arguments. Set to 1 if you would like to print the original version and the concatenated one's (into one line) analyses.
+      !gzS = concat . take 1 . drop 1 $ args
   contents <- readFile file
-  let !flines = fLines toOneLine contents
-      (!data31,!wordsCnt0_data32) = unzip . getData3 printLine gz $ flines
-      !data4 = filter (/= 0) . map fst $ data31
-  if null data4 then putStrLn (replicate 102 '-') >> putStrLn "1.000+-0.000\tALL!" >> putStrLn (replicate 102 '=') -- Well, this means that all the text consists of the unique (in phonetic meaning) words alongside every line. A rather rare occurrence.
-  else do
-    let (!mean1,!disp) = meanWithDisp data4
-        !pairs = sort . filter ((/= 0) . snd) $ wordsCnt0_data32
-        g !m !n = (length . takeWhile (\(_,v) -> v == n) . dropWhile (\(_,v) -> v /= n) . takeWhile (\(u,_) -> u == m) . dropWhile (\(u,_) -> u /= m) $ pairs) `using` rseq
-        h !y !x = mconcat [mconcat . map (\m1 -> mconcat [mconcat . map (\n1 ->  (if y then show (g m1 n1) else if g m1 n1 == 0 then "." else show (g m1 n1)) ++ "\t") $ [1..gz],newLineEnding]) $ [2..7],replicate 102 x]
-    mapM_ putStrLn . map snd $ data31
-    putStrLn . generalInfo1 gz pairs (mean1, disp) $ data31
-    putStrLn (h False '~')
-    putStrLn (h True '=')
+  if compareMode == 0 then do
+   let !flines = fLines toOneLine contents
+   innerProc printLine flines gzS
+  else let !flines1 = fLines 1 contents in do
+    innerProc printLine flines1 gzS
+    let !flines2 = fLines 0 contents
+    innerProc printLine flines2 gzS
 
+innerProc :: Int -> [String] -> String -> IO ()
+innerProc printLine flInes gzS = do
+    let !gz = getIntervalsN gzS flInes -- Obtained from the second command line argument except those ones that are for RTS
+        (!data31,!wordsCnt0_data32) = unzip . getData3 printLine gz $ flInes
+        !data4 = filter (/= 0) . map fst $ data31
+    if null data4 then putStrLn (replicate 102 '-') >> putStrLn "1.000+-0.000\tALL!" >> putStrLn (replicate 102 '=') -- Well, this means that all the text consists of the unique (in phonetic meaning) words alongside every line. A rather rare occurrence.
+    else do
+      let (!mean1,!disp) = meanWithDisp data4
+          !pairs = sort . filter ((/= 0) . snd) $ wordsCnt0_data32
+          g !m !n = (length . takeWhile (\(_,v) -> v == n) . dropWhile (\(_,v) -> v /= n) . takeWhile (\(u,_) -> u == m) . dropWhile (\(u,_) -> u /= m) $ pairs) `using` rseq
+          h !y !x = mconcat [mconcat . map (\m1 -> mconcat [mconcat . map (\n1 ->  (if y then show (g m1 n1) else if g m1 n1 == 0 then "." else show (g m1 n1)) ++ "\t") $ [1..gz],newLineEnding]) $ [2..7],replicate 102 x]
+      mapM_ putStrLn . map snd $ data31
+      putStrLn . generalInfo1 gz pairs (mean1, disp) $ data31
+      putStrLn (h False '~')
+      putStrLn (h True '=')
+
+getIntervalsN :: String -> [String] -> Int
+getIntervalsN xs yss
+  | xs == "s" = sterdgess (length yss)
+  | xs == "l" = levynskyiMod (length yss)
+  | otherwise = fromMaybe 9 (readMaybe xs::(Maybe Int))
+{-# INLINE getIntervalsN #-}
+
+sterdgess :: Int -> Int
+sterdgess n
+  | compare n 0 == GT = ceiling (3.322 * logBase 10 (int2Float n)) + 1
+  | otherwise = error $ "sterdgess: undefined for the argument " ++ show n ++ newLineEnding
+{-# INLINE sterdgess #-}
+
+-- | According to @В. П. Левинський@ (V. P. Levynskyi) from @Опря А. Т. Статистика (модульний варіант з програмованою формою контролю знань).
+-- Навч. посіб. --- К.: Центр учбової літератури, 2012. --- 448 с. ISBN 978-611-01-0266-7@) page 60. Always return odd values.
+levynskyiMod :: Int -> Int
+levynskyiMod n
+  | compare n 100 == LT = g n
+  | compare n 200 == LT = 11
+  | compare n 300 == LT = 13
+  | compare n 400 == LT = 15
+  | compare n 500 == LT = 17
+  | otherwise = let !k = sterdgess n in if even k then k + 7 else k + 8
+       where g n
+              | compare n 60 == GT = 9
+              | compare n 40 == GT = 7
+              | compare n 20 == GT = 5
+              | otherwise = 3
+{-# INLINABLE levynskyiMod #-}
+
 getData3 :: Int -> Int -> [String] -> [((Float,String),(Int,Int))]
 getData3 printLine gz = parMap rseq (\ts ->
   let (!maxE,!minE,!data2) = runEval ((parTuple3 rpar rseq rseq) ((\k -> if k == 0 then 1 else k) . (\rs -> if null rs then 0 else head rs) . firstFrom3 .
@@ -97,7 +144,7 @@
 {-# INLINABLE getData3 #-}
 
 fLines :: Int -> String -> [String]
-fLines !toOneLine = filter (any (\x -> isUkrainian x && isAlpha x)) . prepareText . (\z -> if toOneLine == 1 then unwords . words $ z else z)
+fLines !toOneLine = getTL (filter (any (\x -> isUkrainian x && isAlpha x))) . F1 . prepareText . (\z -> if toOneLine == 1 then unwords . words $ z else z)
 {-# INLINE fLines #-}
 
 generalInfo1 :: Int -> [(Int,Int)] -> (Float,Float) -> [(Float,String)] -> String
diff --git a/uniqueness-periods-vector-examples.cabal b/uniqueness-periods-vector-examples.cabal
--- a/uniqueness-periods-vector-examples.cabal
+++ b/uniqueness-periods-vector-examples.cabal
@@ -3,7 +3,7 @@
 -- http://haskell.org/cabal/users-guide/
 
 name:                uniqueness-periods-vector-examples
-version:             0.7.2.0
+version:             0.8.0.0
 synopsis:            Usage examples for the uniqueness-periods-vector series of packages
 description:         Usage examples for the uniqueness-periods-vector series of packages. Several executables are planned to demonstrate the libraries work.
 homepage:            https://hackage.haskell.org/package/uniqueness-periods-vector-examples
@@ -17,7 +17,7 @@
 extra-source-files:  ChangeLog.md, README.md
 cabal-version:       >=1.10
 
-executable uniqVec01
+executable lineVariants
   main-is:             Main.hs
   -- other-modules:
   -- other-extensions:
@@ -25,7 +25,7 @@
   hs-source-dirs:      Simple
   default-language:    Haskell2010
 
-executable uniqVec02
+executable rewritePoem
   main-is:             Main.hs
   -- other-modules:
   -- other-extensions:
@@ -33,11 +33,11 @@
   hs-source-dirs:      Lines
   default-language:    Haskell2010
 
-executable uniqVec03
+executable processText
   main-is:             Main.hs
   -- other-modules:
-  other-extensions:    CPP, BangPatterns
-  build-depends:       base >=4.7 && <4.15, mmsyn6ukr >=0.8.1 && <1, vector >=0.11 && <0.14, uniqueness-periods-vector >=0.3 && <1, uniqueness-periods-vector-general >=0.4.4 && < 1, uniqueness-periods-vector-common >=0.4 && <1, uniqueness-periods-vector-properties >=0.3.1 && <1, print-info >=0.1.3 && <1, phonetic-languages-ukrainian >=0.2.2 && <1, uniqueness-periods-vector-filters >=0.2 && <1, uniqueness-periods-vector-stats >=0.1.2 && <1, parallel >=3.2.0.6 && <4
+  other-extensions:    CPP, BangPatterns, FlexibleInstances, MultiParamTypeClasses
+  build-depends:       base >=4.7 && <4.15, mmsyn6ukr >=0.8.1 && <1, vector >=0.11 && <0.14, uniqueness-periods-vector >=0.3 && <1, uniqueness-periods-vector-general >=0.4.4 && < 1, uniqueness-periods-vector-common >=0.4 && <1, uniqueness-periods-vector-properties >=0.3.1 && <1, print-info >=0.1.3 && <1, phonetic-languages-ukrainian >=0.2.2 && <1, uniqueness-periods-vector-filters >=0.2 && <1, uniqueness-periods-vector-stats >=0.1.2 && <1, parallel >=3.2.0.6 && <4, lists-flines >=0.1.1 && <1
   ghc-options:         -threaded -rtsopts
   hs-source-dirs:      Proportion
   default-language:    Haskell2010
