diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,5 @@
+# Revision history for phonetic-languages-examples
+
+## 0.1.0.0 -- 2020-10-30
+
+* First version. Released on an unsuspecting world.
diff --git a/GetInfo/Main.hs b/GetInfo/Main.hs
new file mode 100644
--- /dev/null
+++ b/GetInfo/Main.hs
@@ -0,0 +1,118 @@
+-- |
+-- Module      :  Main
+-- Copyright   :  (c) OleksandrZhabenko 2020
+-- License     :  MIT
+-- Stability   :  Experimental
+-- Maintainer  :  olexandr543@yahoo.com
+--
+-- Analyzes a poetic text in Ukrainian, for every line prints statistic data and
+-- then for the whole poem prints the hypothesis evaluation information. Since the 0.4.0.0 version
+-- the program tries to be more accurate in cases of the lines consisting entirely of the words
+-- which are unique in phonetic meaning alongside the line. Another hypothesis is for the seventh command line
+-- argument (since the 0.12.0.0 version) equal to \"y0\" that the distribution
+-- of the placement of the actual poetic text in Ukrainian is not one of the standard distributions.
+-- It can probably have approximately a form of and is different for different authors:
+--
+-- >    --   --   --
+-- >   /  \_/  \_/  \
+--
+-- To enable parallel computations (potentially, they can speed up the work), please, run the @propertiesText@ executable with
+-- @+RTS -threaded -RTS@ command line options with possibly @-N@ option inside.
+--
+
+{-# OPTIONS_GHC -threaded -rtsopts #-}
+
+{-# LANGUAGE BangPatterns, FlexibleContexts #-}
+
+module Main where
+
+
+import Data.SubG
+import System.IO
+import Control.Concurrent
+import Control.Exception
+import Control.Parallel.Strategies
+import Data.Maybe (fromMaybe)
+import Text.Read (readMaybe)
+import qualified Data.Vector as VB
+import Languages.UniquenessPeriods.Vector.General.DebugG hiding (newLineEnding)
+import Languages.UniquenessPeriods.Vector.PropertiesG
+import Melodics.ByteString.Ukrainian
+import System.Environment
+import Languages.Phonetic.Ukrainian.PrepareText
+import Languages.UniquenessPeriods.Vector.DataG
+import Languages.UniquenessPeriods.Vector.AuxiliaryG
+import Languages.UniquenessPeriods.Vector.StrictVG
+import Numeric (showFFloat)
+import Languages.UniquenessPeriods.Vector.Filters
+import Data.Char (isAlpha)
+import Data.Statistics.RulesIntervals
+import Languages.UniquenessPeriods.Vector.FuncRepRelatedG
+
+main :: IO ()
+main = do
+  args <- getArgs
+  let !file = concat . take 1 $ args  -- The first command line arguments except those ones that are RTS arguments
+      !gzS = concat . take 1 . drop 1 $ args -- The second command line argument that controls the choice of the number of intervals
+      !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.
+      !twoInParallel = fromMaybe 1 (readMaybe (concat . take 1 . drop 5 $ args)::(Maybe Int)) -- The sixth command line argument that controls whether if the fifth command line argument is set to \"1\" then the evaluation is done in parallel or not (set to \"1\" --- the default one --- if you would like to evaluate in parallel, otherwise --- just usual sequential evaluation).
+      !choice = concat . drop 6 . take 7 $ args -- The seventh command line argument that controls what properties are used.
+  contents <- readFile file
+  if compareMode == 0 then do
+   let !flines = fLines toOneLine contents
+   innerProc gzS printLine choice flines
+  else let tau !k = (let !flines1 = fLines k contents in innerProc gzS printLine choice flines1) in
+    case twoInParallel of
+     1 -> ($|) sequence_ rpar (map tau [1, 0])
+     _ -> mapM_ tau [1, 0]
+
+innerProc :: String -> Int -> String -> VB.Vector (VB.Vector Char) -> IO ()
+innerProc gzS printLine choice flInes = getData3 (getIntervalsN gzS flInes) printLine choice flInes
+
+getIntervalsN :: String -> VB.Vector (VB.Vector Char) -> Int
+getIntervalsN xs yss
+  | xs == "s" = sturgesH (VB.length yss)
+  | xs == "l" = levynskyiMod (VB.length yss)
+  | otherwise = fromMaybe 9 (readMaybe xs::(Maybe Int))
+{-# INLINE getIntervalsN #-}
+
+getData3 :: Int -> Int -> String -> VB.Vector (VB.Vector Char) -> IO ()
+getData3 gz printLine choice v4 = do
+ let !permsV = genPermutationsV
+ VB.mapM_ (\v -> bracket (do
+  myThread <- forkIO (
+   let !whspss = VB.fromList " 01-"
+       !v2 = subG whspss v
+       !l2 = (subtract 2) . VB.length $ v2
+       (!maxE,!minE,!data2)
+          | compare l2 0 /= LT = runEval (parTuple3 rpar rpar rpar ((\k -> if k == 0.0 then 1.0 else k) . (\ls -> if null ls then 0.0 else head ls) .
+              firstFrom3 . maximumElBy 1 (VB.singleton oneProperty) $
+                UL2 (VB.empty,uniquenessVariants2GNB ' ' id id id (VB.unsafeIndex permsV l2) (VB.singleton oneProperty) (chooseMax choice) v2),
+                  (\k -> if k == 0.0 then 1.0 else k) . abs . (\ls -> if null ls then 0.0 else head ls) .
+                     firstFrom3 . maximumElBy 1 (VB.singleton oneProperty) $
+                       UL2 (VB.empty,uniquenessVariants2GNB ' ' id id id (VB.unsafeIndex permsV l2) (VB.singleton oneProperty) (chooseMin choice) v2),
+                         (\k -> if k == 0.0 then 1.0 else k) . head . getAC (chooseMax choice) $ v))
+          | otherwise = let !mono = (\k -> if k == 0.0 then 1.0 else k) . head . getAC (chooseMax choice) $ v in (mono,mono,mono)
+       (!wordsN,!intervalN)
+         | maxE == 1.0 = (0, 0)
+         | otherwise = runEval (parTuple2 rpar rpar (l2 + 2, intervalNRealFrac minE maxE gz data2))
+       !ratio = if maxE == 1.0 then 0.0 else 2.0 * data2 / (minE + maxE) in do
+         hPutStr stdout . showFFloat (precChoice choice) minE $ "\t"
+         hPutStr stdout . showFFloat (precChoice choice) data2 $ "\t"
+         hPutStr stdout . showFFloat (precChoice choice) maxE $ "\t"
+         hPutStr stdout . showFFloat (Just 4) (data2 / minE) $ "\t"
+         hPutStr stdout . showFFloat (Just 4) (maxE / data2) $ "\t"
+         hPutStr stdout . showFFloat (Just 4) (maxE / data2) $ "\t"
+         hPutStr stdout . showFFloat Nothing ratio $ "\t"
+         hPutStr stdout ('\t':show (wordsN::Int))
+         hPutStr stdout ('\t':show (intervalN::Int))
+         hPutStrLn stdout (if printLine == 1 then '\t':(VB.toList v) else ""))
+  return myThread) (\myThread -> killThread myThread) (\_ -> hPutStr stdout "")) v4
+{-# INLINABLE getData3 #-}
+
+fLines :: Int -> String -> VB.Vector (VB.Vector Char)
+fLines !toOneLine = VB.map VB.fromList . VB.fromList . filter (any (\x -> isUkrainianL x && isAlpha x)) . prepareText .
+  (\z -> if toOneLine == 1 then unwords . words $ z else z)
+{-# INLINE fLines #-}
diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,20 @@
+Copyright (c) 2020 OleksandrZhabenko
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/Languages/UniquenessPeriods/Vector/FuncRepRelatedG.hs b/Languages/UniquenessPeriods/Vector/FuncRepRelatedG.hs
new file mode 100644
--- /dev/null
+++ b/Languages/UniquenessPeriods/Vector/FuncRepRelatedG.hs
@@ -0,0 +1,37 @@
+-- |
+-- Module      :  Languages.UniquenessPeriods.Vector.FuncRepRelatedG
+-- Copyright   :  (c) OleksandrZhabenko 2020
+-- License     :  MIT
+-- Stability   :  Experimental
+-- Maintainer  :  olexandr543@yahoo.com
+--
+-- Functions to choose from the 'FuncRep' variants.
+
+module Languages.UniquenessPeriods.Vector.FuncRepRelatedG where
+
+import qualified Data.Vector as VB
+import Languages.UniquenessPeriods.Vector.DataG
+import String.Languages.UniquenessPeriods.VectorG
+import Languages.UniquenessPeriods.Vector.PropertiesFuncRepG
+
+-- | Allows to choose the variant of the computations in case of usual processment.
+chooseMax :: String -> FuncRep (VB.Vector Char) (UniquenessGeneral2 Char) [Float]
+chooseMax xs
+  | xs == "y0" = procDiverse2F
+  | xs == "0y" = procRhythmicity23F
+  | xs == "y" = procBothF
+  | otherwise = procBothInvF
+
+-- | Allows to choose the variant of the computations in case of minimum lookup. Uses @-neg@ variants.
+chooseMin :: String -> FuncRep (VB.Vector Char) (UniquenessGeneral2 Char) [Float]
+chooseMin xs
+  | xs == "y0" = procDiverse2Fneg
+  | xs == "0y" = procRhythmicity23Fneg
+  | xs == "y" = procBothFneg
+  | otherwise = procBothInvFneg
+
+-- | Allows to choose precision in the Numeric.showFFloat function being given a choice parameter.
+precChoice :: String -> Maybe Int
+precChoice xs
+  | xs == "y0" || xs == "y" || xs == "0y" = Just 0
+  | otherwise = Just 4
diff --git a/Lines/Main.hs b/Lines/Main.hs
new file mode 100644
--- /dev/null
+++ b/Lines/Main.hs
@@ -0,0 +1,123 @@
+-- |
+-- Module      :  Main
+-- Copyright   :  (c) OleksandrZhabenko 2020
+-- License     :  MIT
+-- Stability   :  Experimental
+-- Maintainer  :  olexandr543@yahoo.com
+--
+-- Inspired by: https://functional-art.org/2020/papers/Poetry-OleksandrZhabenko.pdf from the https://functional-art.org/2020/performances ;
+-- Allows to rewrite the given text (usually a poetical one).
+
+{-# OPTIONS_GHC -threaded -rtsopts #-}
+
+{-# LANGUAGE BangPatterns, FlexibleContexts #-}
+
+module Main where
+
+import Data.SubG
+import Control.Parallel.Strategies
+import qualified Data.Vector as VB
+import Data.List (sort)
+import Languages.UniquenessPeriods.Vector.PropertiesG
+import Languages.UniquenessPeriods.Vector.General.DebugG
+import Languages.UniquenessPeriods.Vector.StrictVG
+import Languages.UniquenessPeriods.Vector.Filters (unsafeSwapVecIWithMaxI)
+import Text.Read (readMaybe)
+import Data.Maybe (fromMaybe)
+import System.Environment
+import Languages.Phonetic.Ukrainian.PrepareText
+import Languages.UniquenessPeriods.Vector.DataG
+import Languages.UniquenessPeriods.Vector.AuxiliaryG
+import Data.Char (isDigit)
+import Languages.UniquenessPeriods.Vector.FuncRepRelatedG
+
+-- | The function allows to rewrite the Ukrainian text in the file given as the first command line argument to a new file. In between, it is rewritten
+-- so that every last word on the lines is preserved at its position, and the rest of the line is rearranged using the specified other command line
+-- arguments. They are general for the whole program. The first command line argument is a FilePath to the file with a Ukrainian text to be rewritten.
+-- The second one is a variant of the metrics (\"properties\") used to evaluate the variants.
+-- The further command line arguments are: the number of the intervals and the numbers of the intervals
+-- that are swapped with the maximum one so that they are available for further usage by the program. See documentation for @uniqueness-periods-vector-filters@
+-- package
+-- 'https://hackage.haskell.org/package/uniqueness-periods-vector-filters'
+--
+main :: IO ()
+main = do
+  args <- getArgs
+  let !numericArgs = filter (all isDigit) . drop 2 $ args
+      !choice = concat . drop 1 . take 2 $ args
+      !numberI = fromMaybe 1 (readMaybe (concat . take 1 $ numericArgs)::Maybe Int)
+      !file = concat . take 1 $ args
+      !permsV = VB.force genPermutationsV
+  contents <- readFile file
+  let !flines = prepareText contents
+      !lasts = map (\ts -> if null . words $ ts then [] else last . words $ ts) flines
+      !l = (subtract 3) . length . words . concat . take 1 $ flines
+      !whspss = VB.fromList " 01-"
+  if compare numberI 2 == LT then do
+    let !zs = if compare l 0 == LT then concat . take 1 $ flines else VB.toList . lastFrom3 . headU2 . fst . get22 .
+               uniqNProperties2GN ' ' whspss id id id (VB.unsafeIndex permsV l) (PA VB.empty (VB.fromList . concat . take 1 $ lasts)) 1 1 (VB.singleton oneProperty) (chooseMax choice) . VB.fromList . unwords . init . words . concat . take 1 $ flines
+    toFileStr (file ++ ".new.txt") (zs:(noDoubleWords . circle2 permsV (concat . take 1 $ lasts) choice [] . drop 1 $ flines))
+  else do
+    let !intervalNmbrs = (\vs -> if null vs then VB.singleton numberI else VB.uniq . VB.fromList $ vs) . sort . filter (<= numberI) .
+           map (\t -> fromMaybe numberI (readMaybe t::Maybe Int)) . drop 2 $ numericArgs
+        !us = words . concat . take 1 $ flines
+        !l2 = (subtract 3) . length $ us
+    if compare l2 0 /= LT then do
+      let !perms2 = VB.force . VB.unsafeIndex permsV $ l2
+          !v = if compare l2 0 == LT then VB.empty else VB.fromList . unwords . init $ us
+          !v2 = subG whspss v
+          (!maxE,!minE) = runEval (parTuple2 rpar rpar ((\k -> if k == 0.0 then 1.0 else k) . (\rs -> if null rs then 0.0 else head rs) . firstFrom3 .
+            maximumElBy 1 (VB.singleton oneProperty) $ UL2 (VB.empty,uniquenessVariants2GNB ' ' id id id perms2 (VB.singleton oneProperty) (chooseMax  choice) $ v2), (\k -> if k == 0.0 then 1.0 else k) . abs .
+              (\rs -> if null rs then 0.0 else head rs) . firstFrom3 . maximumElBy 1 (VB.singleton oneProperty) $
+              UL2 (VB.empty,uniquenessVariants2GNB ' ' id id id perms2 (VB.singleton oneProperty) (chooseMin choice) $ v2)))
+          !zs = if compare l2 0 == LT then concat . take 1 $ flines else VB.toList . lastFrom3 . headU2 . fst . get22 .
+            uniqNProperties2GN ' ' whspss id id id perms2 (PA VB.empty (VB.fromList . concat . take 1 $ lasts)) 1 1 (VB.singleton (unsafeSwapVecIWithMaxI minE maxE numberI intervalNmbrs . oneProperty)) (chooseMax choice) $ v
+      toFile (file ++ ".new.txt") (zs:(noDoubleWords . circle2I permsV whspss (concat . take 1 $ lasts) choice [] numberI intervalNmbrs minE maxE . drop 1 $ flines))
+    else toFileStr (file ++ ".new.txt") ((concat . take 1 $ flines):(noDoubleWords . circle2I permsV whspss (concat . take 1 $ lasts) choice [] numberI intervalNmbrs 0.0 0.0 . drop 1 $ flines))
+
+
+-- | Processment without rearrangements.
+circle2 :: VB.Vector (VB.Vector (VB.Vector Int)) -> String -> String -> [String] -> [String] -> [String]
+circle2 permsG1 xs choice yss xss
+ | null xss = yss
+ | otherwise = circle2 permsG1 (if null rs then [] else last rs) choice (ws:yss) tss
+      where (!zss,!tss) = splitAt 1 xss
+            !rs = words . concat $ zss
+            !ws = if compare (length rs) 3 == LT then unwords (xs:rs) else VB.toList . lastFrom3 . headU2 . fst . get22 .
+                    uniqNProperties2GN ' ' (VB.fromList " 01-") id id id (VB.unsafeIndex permsG1 $ length rs - 3) (PA (VB.fromList xs) (VB.fromList . last $ rs)) 1 1 (VB.singleton oneProperty) (chooseMax choice) . VB.fromList . unwords . init $ rs
+
+-- | Processment with rearrangements.
+circle2I :: VB.Vector (VB.Vector (VB.Vector Int)) -> VB.Vector Char -> String -> String -> [String] -> Int -> VB.Vector Int -> Float -> Float -> [String] -> [String]
+circle2I permsG1 whspss xs choice yss numberI vI minE maxE xss
+ | null xss = yss
+ | otherwise = circle2I permsG1 whspss (if null rs then [] else last rs) choice (ws:yss) numberI vI minE1 maxE1 tss
+      where (!zss,!tss) = splitAt 1 xss
+            !w2s = words . concat . take 1 $ tss
+            !l3 = (subtract 3) . length $ w2s
+            !rs = words . concat $ zss
+            !ws = if compare (length rs) 3 == LT then unwords (xs:rs) else VB.toList . lastFrom3 . headU2 . fst . get22 .
+                    uniqNProperties2GN ' ' (VB.fromList " 01-") id id id (VB.unsafeIndex permsG1 $ length rs - 3) (PA (VB.fromList xs) (VB.fromList . last $ rs)) 1 1 (VB.singleton (unsafeSwapVecIWithMaxI minE maxE numberI vI .
+                      oneProperty)) (chooseMax choice) . VB.fromList . unwords . init $ rs
+            (!maxE1,!minE1)
+             | compare l3 0 /= LT =
+              let !perms3 = VB.force . VB.unsafeIndex permsG1 $ l3
+                  !v3 = VB.fromList . unwords . init $ w2s
+                  !v4 = subG whspss v3 in runEval (parTuple2 rpar rpar ((\k -> if k == 0.0 then 1.0 else k) . (\ls -> if null ls then 0.0 else head ls) .
+                         firstFrom3 . maximumElBy 1 (VB.singleton oneProperty) $ UL2 (VB.empty,
+                           uniquenessVariants2GNB ' ' id id id perms3 (VB.singleton oneProperty) (chooseMax  choice) $ v4),
+                             (\k -> if k == 0.0 then 1.0 else k) . abs . (\ls -> if null ls then 0.0 else head ls) . firstFrom3 .
+                               maximumElBy 1 (VB.singleton oneProperty) $
+                                 UL2 (VB.empty,uniquenessVariants2GNB ' ' id id id perms3 (VB.singleton oneProperty) (chooseMin choice) $ v4)))
+             | otherwise = (0.0,0.0)
+
+headU2
+  :: (Foldable t, Foldable t2, InsertLeft t a, Monoid (t a), Monoid (t (t a)), Monoid (t2 b)) => VB.Vector (UniquenessG1T2 t t2 a b)
+  -> UniquenessG1T2 t t2 a b
+headU2 v
+ | VB.null v = (mempty, VB.empty,mempty)
+ | otherwise = VB.unsafeIndex v 0
+{-# INLINE headU2 #-}
+
+noDoubleWords :: [String] -> [String]
+noDoubleWords = map (unwords . drop 1 . words)
+{-# INLINE noDoubleWords #-}
diff --git a/Setup.hs b/Setup.hs
new file mode 100644
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,2 @@
+import Distribution.Simple
+main = defaultMain
diff --git a/Simple/Main.hs b/Simple/Main.hs
new file mode 100644
--- /dev/null
+++ b/Simple/Main.hs
@@ -0,0 +1,68 @@
+-- |
+-- Module      :  Main
+-- Copyright   :  (c) OleksandrZhabenko 2020
+-- License     :  MIT
+-- Stability   :  Experimental
+-- Maintainer  :  olexandr543@yahoo.com
+--
+-- Prints the rearrangements with the \"property\" information for the Ukrainian language text.
+-- The most interesting is the first line of the output. But other ones also are noteworthy.
+
+{-# OPTIONS_GHC -threaded -rtsopts #-}
+
+{-# LANGUAGE BangPatterns #-}
+
+module Main where
+
+import Control.Parallel.Strategies
+import qualified Data.Vector as VB
+import Data.Print.Info
+import Languages.UniquenessPeriods.Vector.General.DebugG
+import Languages.UniquenessPeriods.Vector.AuxiliaryG
+import Languages.UniquenessPeriods.Vector.PropertiesG
+import Languages.UniquenessPeriods.Vector.Filters
+import Languages.UniquenessPeriods.Vector.StrictVG
+import Languages.Phonetic.Ukrainian.PrepareText
+import Languages.UniquenessPeriods.Vector.DataG
+import Data.Char (isDigit)
+import qualified Data.List  as L (span,sort,permutations)
+import Languages.UniquenessPeriods.Vector.FuncRepRelatedG
+import Data.SubG
+import System.Environment
+import Data.Maybe
+import Text.Read (readMaybe)
+
+
+-- | Prints the rearrangements with the \"property\" information for the Ukrainian language text. The first command line argument must be a
+-- positive 'Int' number and is a number of printed variants for the line (if they are present, otherwise just all possible variants are printed).
+-- The second one is the number of the intervals into which the all range of possible metrics values are divided. The next numeric arguments that must be
+-- sequenced without interruptions further are treated as the numbers of the intervals (counting is started from 1) which values are moved to the maximum
+-- values of the metrics interval using the 'unsafeSwapVecIWithMaxI' function. The first textual command line argument should be in the form either \"y0\",
+-- or \"0y\", or \"yy\", or \"y\" and specifies, which property or properties is or are evaluated.
+-- The rest of the command line arguments is the Ukrainian text.
+--
+-- The most interesting is the first line of the output. But other ones also are noteworthy.
+main :: IO ()
+main = do
+  args <- getArgs
+  let (!numericArgs,!textualArgs) = L.span (all isDigit) args
+      !arg0 = fromMaybe 1 $ (readMaybe (concat . take 1 $ numericArgs)::Maybe Int)
+      !numberI = fromMaybe 1 $ (readMaybe (concat . drop 1 . take 2 $ numericArgs)::Maybe Int)
+      !choice = concat . take 1 $ textualArgs
+      !xs = concat . take 1 . prepareText . unwords . drop 1 $ textualArgs
+      !l = length . words $ xs
+      !v = VB.fromList xs
+      !whspss = VB.fromList " 01-"
+      !perms = genPermutations l
+      !subs = subG whspss v
+  if compare numberI 2 == LT then printUniquenessG1VChar (I1 H) . fst . get22 . uniqNProperties2GN ' ' (VB.fromList " 01-") id id id perms K arg0 1 (VB.singleton (oneProperty))
+    (chooseMax choice) $ v
+  else do
+    let !intervalNmbrs = (\zs -> if null zs then VB.singleton numberI else VB.uniq . VB.fromList $ zs) . L.sort . filter (<= numberI) . map (\t -> fromMaybe numberI $ (readMaybe t::Maybe Int)) . drop 2 $ numericArgs
+        (!maxE,!minE) = runEval ((parTuple2 rpar rpar) ((\k -> if k == 0.0 then 1.0 else k) . (\rs -> if null rs then 0.0 else head rs) . firstFrom3 .
+         maximumElBy 1 (VB.singleton (oneProperty)) $ UL2 (VB.empty,uniquenessVariants2GNB ' ' id id id perms (VB.singleton (oneProperty)) (chooseMax choice) $ subs), (\k -> if k == 0.0 then 1.0 else k) . abs . (\rs -> if null rs then 0.0 else head rs) .
+              firstFrom3 . maximumElBy 1 (VB.singleton (oneProperty)) $ UL2 (VB.empty,uniquenessVariants2GNB ' ' id id id perms (VB.singleton (oneProperty))
+                (chooseMin choice) $ subs)))
+    printUniquenessG1VChar (I1 H) . fst . get22 . uniqNProperties2GN ' ' (VB.fromList " 01-") id id id perms K arg0 1 (VB.singleton (unsafeSwapVecIWithMaxI minE maxE numberI intervalNmbrs .
+      oneProperty)) (chooseMax choice) $ v
+
diff --git a/phonetic-languages-examples.cabal b/phonetic-languages-examples.cabal
new file mode 100644
--- /dev/null
+++ b/phonetic-languages-examples.cabal
@@ -0,0 +1,52 @@
+-- Initial phonetic-languages-examples.cabal generated by cabal init.  For
+-- further documentation, see http://haskell.org/cabal/users-guide/
+
+name:                phonetic-languages-examples
+version:             0.1.0.0
+synopsis:            A generalization of the uniqueness-periods-vector-examples functionality.
+description:         Is intended to use more functionality of the Data.Vector, Data.Foldable, Data.Monoid and Data.SubG modules.
+homepage:            https://hackage.haskell.org/package/phonetic-languages-examples
+license:             MIT
+license-file:        LICENSE
+author:              OleksandrZhabenko
+maintainer:          olexandr543@yahoo.com
+copyright:           (c) 2020 Oleksandr Zhabenko
+category:            Language, Math, Game
+build-type:          Simple
+extra-source-files:  CHANGELOG.md
+cabal-version:       >=1.10
+
+library
+  exposed-modules:     Languages.UniquenessPeriods.Vector.FuncRepRelatedG
+  -- other-modules:
+  other-extensions:    BangPatterns
+  build-depends:       base >=4.7 && <4.15, phonetic-languages-vector >=0.1 && <1, phonetic-languages-common >=0.1.1 && <1, phonetic-languages-properties >=0.1 && <1, vector >=0.11 && < 0.14
+  -- hs-source-dirs:
+  default-language:    Haskell2010
+
+executable lineVariantsG
+  main-is:             Main.hs
+  other-modules:       Languages.UniquenessPeriods.Vector.FuncRepRelatedG
+  other-extensions:    BangPatterns
+  build-depends:       base >=4.7 && <4.15, ukrainian-phonetics-basic >=0.1.7 && <1, vector >=0.11 && <0.14, phonetic-languages-vector >=0.1 && <1, phonetic-languages-general >=0.1 && < 1, phonetic-languages-common >=0.1.1 && <1, phonetic-languages-properties >=0.1 && <1, print-info >=0.1.3 && <1, phonetic-languages-ukrainian >=0.2.3 && <1, parallel >=3.2.0.6 && <4, uniqueness-periods-vector-filters >=0.3 && <1, vector >=0.11 && <0.14, phonetic-languages-plus >=0.1 && <1, subG >=0.1.1.1 && < 1
+  ghc-options:         -threaded -rtsopts
+  hs-source-dirs:      ., Simple
+  default-language:    Haskell2010
+
+executable rewritePoemG
+  main-is:             Main.hs
+  other-modules:       Languages.UniquenessPeriods.Vector.FuncRepRelatedG
+  other-extensions:    BangPatterns
+  build-depends:       base >=4.7 && <4.15, ukrainian-phonetics-basic >=0.1.7 && <1, vector >=0.11 && <0.14, phonetic-languages-vector >=0.1 && <1, phonetic-languages-general >=0.1 && < 1, phonetic-languages-common >=0.1.1 && <1, phonetic-languages-properties >=0.1 && <1, print-info >=0.1.3 && <1, phonetic-languages-ukrainian >=0.2.3 && <1, parallel >=3.2.0.6 && <4, uniqueness-periods-vector-filters >=0.3 && <1, vector >=0.11 && <0.14, phonetic-languages-plus >=0.1 && <1, subG >= 0.1.1.1 && < 1
+  ghc-options:         -threaded -rtsopts
+  hs-source-dirs:      ., Lines
+  default-language:    Haskell2010
+
+executable propertiesTextG
+  main-is:             Main.hs
+  other-modules:       Languages.UniquenessPeriods.Vector.FuncRepRelatedG
+  other-extensions:    BangPatterns
+  build-depends:       base >=4.7 && <4.15, ukrainian-phonetics-basic >=0.1.7 && <1, vector >=0.11 && <0.14, phonetic-languages-vector >=0.1 && <1, phonetic-languages-general >=0.1 && < 1, phonetic-languages-common >=0.1.1 && <1, phonetic-languages-properties >=0.1 && <1, phonetic-languages-ukrainian >=0.2.3 && <1, uniqueness-periods-vector-filters >=0.3 && <1, uniqueness-periods-vector-stats >=0.1.2 && <1, parallel >=3.2.0.6 && <4, phonetic-languages-plus >=0.1 && <1, subG >= 0.1.1.1 && < 1
+  ghc-options:         -threaded -rtsopts
+  hs-source-dirs:      ., GetInfo
+  default-language:    Haskell2010
