diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -226,3 +226,17 @@
 
 * Eighteenth version revised B. Fixed issues with interval rearrangements. Some minor documentation improvements for the related project phonetic-languages-simplified-examples-array.
 
+## 0.19.0.0 -- 2022-09-13
+
+* Nineteenth version. Added the ability to search for the sum of periods of uniqueness not for all units, but only for certain given units.
+
+Simple: added the ability to change the program call arguments along with text in recursive mode, as well as changed the sorting and output order of lines in the detailed
+multi-property mode with call parameters "+v 2".
+
+GetTextualInfo: added the ability to read text directly from the input, not from the file, a possibility to 'write deencoded' text options (as it was earlier intorduced for 
+Simple), as well as the statistics mode by syllables.
+
+Lines: has increased the number of possible sources to create a combined file from 7 to 14.
+
+Updated the parallel project phonetic-languages-simplified-examples-array documentation.
+
diff --git a/Phonetic/Languages/General/GetInfo/Parsing.hs b/Phonetic/Languages/General/GetInfo/Parsing.hs
--- a/Phonetic/Languages/General/GetInfo/Parsing.hs
+++ b/Phonetic/Languages/General/GetInfo/Parsing.hs
@@ -26,7 +26,7 @@
 import CLI.Arguments.Parsing
 import CLI.Arguments.Get
 import qualified Phonetic.Languages.Permutations.Represent as R
-
+import Phonetic.Languages.Coeffs
 
 -- | The first 5 arguments are the file names with the specifications.
 -- 1) with the 'GWritingSystemPRPLX' specifications only (see the gwrsysExample.txt file in the @phonetic-languages-phonetics-basics@ package as a schema);
@@ -44,15 +44,16 @@
  -- Specifies a way how the syllables represented in the phonetic language approach transforms into their durations and
  -- depends on two parameters. Is specific for every phonetic language and every representation, so must be provided
  -- by the user in every case. The example of the function can be found in the package @phonetic-languages-simplified-properties-array@.
+ -> (String -> String) -- ^ A function that specifies what 'Char's in the list the first argument makes to be the function sensitive to. Analogue of the @g@ function in the definition: https://hackage.haskell.org/package/phonetic-languages-simplified-examples-array-0.21.0.0/docs/src/Phonetic.Languages.Simplified.Array.Ukrainian.FuncRep2RelatedG2.html#parsey0Choice. Use just small 'Char' if they are letters, do not use \'.\' and spaces.
  -> [MappingFunctionPL]
  -> IO ()
-argsToGetInfoProcessment h qs = do
+argsToGetInfoProcessment h g1 qs = do
  args500 <- getArgs
  let (pPs,args50) = takeBsR [("+p",1)] args500
      pairwisePermutations = R.bTransform2Perms . getB "+p" $ pPs
      (!args15,!args000) = splitAt 5 args50
      [fileGWrSys, controlFile, segmentRulesFile, concatenationsFileP, concatenationsFileA] = args15
- files4ArgsProcessment pairwisePermutations fileGWrSys controlFile segmentRulesFile concatenationsFileP concatenationsFileA h qs args000
+ files4ArgsProcessment pairwisePermutations fileGWrSys controlFile segmentRulesFile concatenationsFileP concatenationsFileA h qs args000 g1
 
 files4ArgsProcessment
   :: R.PermutationsType -- ^ Whether to use just one of the express permutations, or the full universal set.
@@ -69,8 +70,9 @@
   -- syllableDurationsD functions from the @ukrainian-phonetics-basics-array@ package. The first one must be probably the most
   --  -- exact one and, therefore, the default one.
   -> [String] -- ^ List of other command line arguments
+  -> (String -> String) -- ^ A function that specifies what 'Char's in the list the first argument makes to be the function sensitive to. Analogue of the @g@ function in the definition: https://hackage.haskell.org/package/phonetic-languages-simplified-examples-array-0.21.0.0/docs/src/Phonetic.Languages.Simplified.Array.Ukrainian.FuncRep2RelatedG2.html#parsey0Choice. Use just small 'Char' if they are letters, do not use \'.\' and spaces.
   -> IO ()
-files4ArgsProcessment pairwisePermutations !fileGWrSys !controlFile !segmentRulesFile !concatenationsFileP !concatenationsFileA h qs args000 = do
+files4ArgsProcessment pairwisePermutations !fileGWrSys !controlFile !segmentRulesFile !concatenationsFileP !concatenationsFileA h qs args000 g1 = do
  [fileGWrSys1, controlFile1, segmentRulesFile1, concatenationsFileP1, concatenationsFileA1] <- mapM readFile [fileGWrSys, controlFile, segmentRulesFile, concatenationsFileP, concatenationsFileA]
  let (argsA,argsB,argsC1,_) = args2Args31R fstCharsM specs1 args000
      !args00 = snd . takeAsR [("+b",0)] . snd . takeBsR [("+x",1),("+g",1)] $ args000
@@ -83,6 +85,7 @@
                                   (Just n4,Just m4) -> if (m4 `rem` 7) < (n4 `rem` 7) then (n4 `rem` 7 + 1, m4 `rem` 7 + 1) else (0,0)
                                   _ -> (0,0)
      !lstW = oneA "+b" argsA
+     !syllableStats = oneA "+s" argsA -- ^  Whether to print syllables statistics instead of usual processment
      !args0 = snd . takeCs1R fstCharsM cSpecs1 $ args00
      !multiples = getC "+m" argsC1 -- Arguments for multiple metrices mode
      !args = filter (\xs -> all (/= ':') xs && all (/= '@') xs) args0
@@ -98,7 +101,7 @@
        !printLine = fromMaybe 0 (readMaybe (concat . take 1 . drop 3 $ args)::(Maybe Int))
        !toOneLine = fromMaybe 0 (readMaybe (concat . take 1 . drop 4 $ args)::(Maybe Int))
        !choice = concat . drop 5 . take 6 $ args
-   generalProc pairwisePermutations (gr1,gr2) wrs ks arr gs h qs ysss zzzsss xs js vs {- the old arguments follow -} lstW multiples lInes coeffs coeffsWX file gzS printLine toOneLine choice
+   generalProc pairwisePermutations (gr1,gr2) wrs ks arr gs h qs ysss zzzsss xs js vs {- the old arguments follow -} lstW multiples lInes coeffs coeffsWX file gzS printLine toOneLine g1 syllableStats choice
   else do
    contents <- readFile file
    fLinesNIO (if pairwisePermutations /= R.P 0 then 10 else 7) ysss zzzsss xs js vs contents
@@ -109,13 +112,13 @@
        !printLine = fromMaybe 0 (readMaybe (concat . take 1 . drop 2 $ args)::(Maybe Int))
        !toOneLine = fromMaybe 0 (readMaybe (concat . take 1 . drop 3 $ args)::(Maybe Int))
        !choice = concat . drop 4 . take 5 $ args
-   generalProc pairwisePermutations (gr1,gr2) wrs ks arr gs h qs ysss zzzsss xs js vs {- the old arguments follow -} lstW multiples lInes coeffs coeffsWX file gzS printLine toOneLine choice
+   generalProc pairwisePermutations (gr1,gr2) wrs ks arr gs h qs ysss zzzsss xs js vs {- the old arguments follow -} lstW multiples lInes coeffs coeffsWX file gzS printLine toOneLine g1 syllableStats choice
   else do
    contents <- readFile file
    fLinesNIO (if pairwisePermutations /= R.P 0 then 10 else 7) ysss zzzsss xs js vs contents
 
 aSpecs :: CLSpecifications
-aSpecs = [("+b",0)]
+aSpecs = [("+b",0),("+s",0)]
 
 aSpcs :: [String] -> Args
 aSpcs = fst . takeAsR aSpecs
diff --git a/Phonetic/Languages/General/GetTextualInfo.hs b/Phonetic/Languages/General/GetTextualInfo.hs
--- a/Phonetic/Languages/General/GetTextualInfo.hs
+++ b/Phonetic/Languages/General/GetTextualInfo.hs
@@ -22,6 +22,7 @@
   , process1Line
 ) where
 
+import Phonetic.Languages.General.Parsing
 import Data.SubG hiding (takeWhile,dropWhile)
 import System.IO
 import Control.Concurrent
@@ -54,6 +55,7 @@
 import Data.Phonetic.Languages.Syllables
 import qualified Phonetic.Languages.Permutations.Represent as R
 import Phonetic.Languages.EmphasisG
+import Phonetic.Languages.Coeffs
 
 generalProc
  :: R.PermutationsType -- ^ Whether to use just one of the express permutations, or the full universal set.
@@ -86,6 +88,8 @@
  -> String
  -> Int
  -> Int
+ -> (String -> String) -- ^ A function that specifies what 'Char's in the list the first argument makes to be the function sensitive to. Analogue of the @g@ function in the definition: https://hackage.haskell.org/package/phonetic-languages-simplified-examples-array-0.21.0.0/docs/src/Phonetic.Languages.Simplified.Array.Ukrainian.FuncRep2RelatedG2.html#parsey0Choice. Use just small 'Char' if they are letters, do not use \'.\' and spaces.
+ -> Bool  -- ^ Whether to print just the syllables statistics line-by-line
  -> String -- ^ Is intended to be one of the following strings: \"02y\", \"02z\", \"03y\", \"03z\", \"04y\", \"04z\",
  -- \"0y\", \"0z\", \"y\", \"y0\", \"y2\", \"y3\", \"y4\", \"yy\", \"yy2\", \"yy3\", \"z\", \"z2\", \"z3\", \"z4\",
  -- \"zz\", \"zz2\", \"zz3\", \"zz4\" or some other one. Since 0.5.0.0 version can also
@@ -95,19 +99,21 @@
  -- with the 'Int' arguments from the first argument tuple. This allows to rearrange the given text and then
  -- to rewrite it.
  -> IO ()
-generalProc pairwisePermutations (gr1,gr2) wrs ks arr gs h rs ysss zzzsss xs js vs lstW multiples2 lInes coeffs coeffsWX file gzS printLine toOneLine choice
+generalProc pairwisePermutations (gr1,gr2) wrs ks arr gs h rs ysss zzzsss xs js vs lstW multiples2 lInes coeffs coeffsWX file gzS printLine toOneLine g1 syllableStats choice
  | null lInes = do
-    contents <- readFile file
-    let !flines
-           | gr1 == 0 = fLinesN (if pairwisePermutations /= R.P 0 then 10 else 7) ysss zzzsss xs js vs toOneLine contents
-           | otherwise = prepareGrowTextMN gr1 gr2 ysss zzzsss xs . unlines . fLinesN (if pairwisePermutations /= R.P 0 then 10 else 7) ysss zzzsss xs js vs toOneLine $ contents
-    getData3 pairwisePermutations wrs ks arr gs js vs h rs lstW coeffs coeffsWX (getIntervalsNS lstW gzS flines) printLine choice multiples2 flines
+     contents0 <- do (if file == "+i" then getContents else readFile file)
+     let !contsWss = map words . lines $ contents0
+         !newconts = unlines . map (\lineswrdss -> if variations lineswrdss then unlines . map unwords . transformToVariations $ lineswrdss else unwords lineswrdss) $ contsWss
+         !flines
+           | gr1 == 0 = fLinesN (if pairwisePermutations /= R.P 0 then 10 else 7)  ysss zzzsss xs js vs toOneLine newconts -- contents
+           | otherwise = prepareGrowTextMN gr1 gr2  ysss zzzsss xs . unlines . fLinesN (if pairwisePermutations /= R.P 0 then 10 else 7) ysss zzzsss xs js vs toOneLine $ newconts -- contents
+     getData3 pairwisePermutations wrs ks arr gs js vs h rs lstW coeffs coeffsWX (getIntervalsNS lstW gzS flines) printLine g1 choice multiples2 syllableStats flines
  | otherwise = do
-    contents <- readFile file
-    let !flines
-           | gr1 == 0 = fLinesN (if pairwisePermutations /= R.P 0 then 10 else 7) ysss zzzsss xs js vs toOneLine . unlines . linesFromArgsG lInes . fLines ysss zzzsss xs js vs 0 $ contents
-           | otherwise = prepareGrowTextMN gr1 gr2 ysss zzzsss xs . unlines . fLinesN (if pairwisePermutations /= R.P 0 then 10 else 7) ysss zzzsss xs js vs toOneLine . unlines . linesFromArgsG lInes . fLines ysss zzzsss xs js vs 0 $ contents
-    getData3 pairwisePermutations wrs ks arr gs js vs h rs lstW coeffs coeffsWX (getIntervalsNS lstW gzS flines) printLine choice multiples2 flines
+     contents0 <- do (if file == "+i" then getContents else readFile file)
+     let !contsWss = map words . lines $ contents0
+         !newconts = unlines . map (\lineswrdss -> if variations lineswrdss then unlines . map unwords . transformToVariations $ lineswrdss else unwords lineswrdss) $ contsWss
+         !flines = (if gr1 == 0 then id else prepareGrowTextMN gr1 gr2 ysss zzzsss xs . unlines) . fLinesN (if pairwisePermutations /= R.P 0 then 10 else 7)  ysss zzzsss xs js vs toOneLine . unlines . linesFromArgsG lInes . fLinesN (if pairwisePermutations /= R.P 0 then 10 else 7)  ysss zzzsss xs js vs 0 $ newconts -- contents
+     getData3 pairwisePermutations wrs ks arr gs js vs h rs lstW coeffs coeffsWX (getIntervalsNS lstW gzS flines) printLine g1 choice multiples2 syllableStats flines
 
 linesFromArgs1
  :: Int
@@ -143,6 +149,7 @@
  -> Coeffs2 -- ^ This value is used when property choice is from the \"w\" or \"x\" lines.
  -> Int
  -> Int
+ -> (String -> String) -- ^ A function that specifies what 'Char's in the list the first argument makes to be the function sensitive to. Analogue of the @g@ function in the definition: https://hackage.haskell.org/package/phonetic-languages-simplified-examples-array-0.21.0.0/docs/src/Phonetic.Languages.Simplified.Array.Ukrainian.FuncRep2RelatedG2.html#parsey0Choice. Use just small 'Char' if they are letters, do not use \'.\' and spaces.
  -> String -- ^ Is intended to be one of the following strings: \"02y\", \"02z\", \"03y\", \"03z\", \"04y\", \"04z\",
  -- \"0y\", \"0z\", \"y\", \"y0\", \"y2\", \"y3\", \"y4\", \"yy\", \"yy2\", \"yy3\", \"z\", \"z2\", \"z3\", \"z4\",
  -- \"zz\", \"zz2\", \"zz3\", \"zz4\" or some other one. Since 0.5.0.0 version can also
@@ -152,16 +159,19 @@
  -- with the 'Int' arguments from the first argument tuple. This allows to rearrange the given text and then
  -- to rewrite it.
  -> [String]
+ -> Bool
  -> [String]
  -> IO ()
-getData3 pairwisePermutations wrs ks arr gs js vs h rs lstW coeffs coeffsWX gz printLine choice0 multiples3 zss =
-  let  !choice = filter (/='a') choice0
-       !permsV4 = case pairwisePermutations of
-        R.P 2 -> genPairwisePermutationsArrLN 10
-        R.P 1 -> genElementaryPermutationsArrLN1 10
-        _ -> genPermutationsArrL in do
-          putStrLn (replicate (length multiples3 + 1) '\t' `mappend` show gz)
-          mapM_ (process1Line wrs ks arr gs js vs h rs lstW coeffs coeffsWX gz printLine choice multiples3 permsV4) zss
+getData3 pairwisePermutations wrs ks arr gs js vs h rs lstW coeffs coeffsWX gz printLine g1 choice0 multiples3 syllableStats zss = do
+   let choice = filter (/= 'a') choice0 
+       !permsV4 
+         | pairwisePermutations == R.P 2 = genPairwisePermutationsArrLN 10
+         | pairwisePermutations == R.P 1 = genElementaryPermutationsArrLN1 10
+         | otherwise = genPermutationsArrL 
+   putStrLn (replicate (length multiples3 + 1) '\t' `mappend` show gz)
+   mapM_ (\qs -> case syllableStats of
+                   True -> let tsss = createSyllablesPL wrs ks arr gs js vs qs in putStrLn ((show . length . concat $ tsss) `mappend` "\t" `mappend` (show . map length $ tsss) `mappend` (if printLine == 1 then '\t':qs else ""))
+                   _ -> process1Line wrs ks arr gs js vs h rs lstW coeffs coeffsWX gz printLine g1 choice multiples3 permsV4 qs) zss
 
 process1Line
  :: GWritingSystemPRPLX -- ^ Data used to obtain the phonetic language representation of the text.
@@ -183,6 +193,7 @@
  -> Coeffs2 -- ^ This value is used when property choice is from the \"w\" or \"x\" lines.
  -> Int
  -> Int
+ -> (String -> String) -- ^ A function that specifies what 'Char's in the list the first argument makes to be the function sensitive to. Analogue of the @g@ function in the definition: https://hackage.haskell.org/package/phonetic-languages-simplified-examples-array-0.21.0.0/docs/src/Phonetic.Languages.Simplified.Array.Ukrainian.FuncRep2RelatedG2.html#parsey0Choice. Use just small 'Char' if they are letters, do not use \'.\' and spaces.
  -> String -- ^ Is intended to be one of the following strings: \"02y\", \"02z\", \"03y\", \"03z\", \"04y\", \"04z\",
  -- \"0y\", \"0z\", \"y\", \"y0\", \"y2\", \"y3\", \"y4\", \"yy\", \"yy2\", \"yy3\", \"z\", \"z2\", \"z3\", \"z4\",
  -- \"zz\", \"zz2\", \"zz3\", \"zz4\" or some other one. Since 0.5.0.0 version can also
@@ -195,16 +206,17 @@
  -> Array Int [Array Int Int]  -- ^ A permutations array of indices.
  -> String
  -> IO ()
-process1Line wrs ks arr gs js vs h qs lstW coeffs coeffsWX gz printLine choice multiples4 !permsV50 v
+process1Line wrs ks arr gs js vs h qs lstW coeffs coeffsWX gz printLine g1 choice multiples4 !permsV50 v
  | null multiples4 = bracket (do {
     myThread <- forkIO (do
      let !v2 = words v
          !l2 = length v2 - 2
+         !sels = parsey0Choice g1 choice
      if l2 >= (if lstW then 1 else 0) then do
       let !permsV5 = decodeConstraint1 (fromMaybe (E 1) . readMaybeECG (l2 + 1) . showB (l2 + 2) $ lstW) .
             unsafeAt permsV50 $ l2
-          ((!minE,!maxE),!data2) = runEval (parTuple2 rpar rpar (minMax11C . map (toTransPropertiesF'2 (if take 1 choice == "w" || take 1 choice == "x" then chooseMax wrs ks arr gs js vs id h coeffsWX qs choice "" else chooseMax wrs ks arr gs js vs id h coeffs qs choice "")) .
-                map StrG . uniquenessVariants2GNBL ' ' id id id permsV5 $ v2, toTransPropertiesF'2 (if take 1 choice == "w" || take 1 choice == "x" then chooseMax wrs ks arr gs js vs id h coeffsWX qs choice "" else chooseMax wrs ks arr gs js vs id h coeffs qs choice "") .
+          ((!minE,!maxE),!data2) = runEval (parTuple2 rpar rpar (minMax11C . map (toTransPropertiesF'2 (if take 1 choice == "w" || take 1 choice == "x" then chooseMax wrs ks arr gs js vs id h coeffsWX sels qs choice "" else chooseMax wrs ks arr gs js vs id h coeffs sels qs choice "")) .
+                map StrG . uniquenessVariants2GNBL ' ' id id id permsV5 $ v2, toTransPropertiesF'2 (if take 1 choice == "w" || take 1 choice == "x" then chooseMax wrs ks arr gs js vs id h coeffsWX sels qs choice "" else chooseMax wrs ks arr gs js vs id h coeffs sels qs choice "") .
                  StrG . unwords . subG (' ':js `mappend` vs) $ v))
           (!wordsN,!intervalN) = (l2 + 2, intervalNRealFrac minE maxE gz data2)
           !ratio = if maxE == 0.0 then 0.0 else 2.0 * data2 / (minE + maxE)
@@ -227,10 +239,10 @@
     if l2 >= (if lstW then 1 else 0) then do
      let !permsV5 = decodeConstraint1 (fromMaybe (E 1) . readMaybeECG (l2 + 1) . showB (l2 + 2) $ lstW) .
             unsafeAt permsV50 $ l2
-         rs = parMap rpar (\choiceMMs -> (minMax11C .
-           map (toTransPropertiesF'2 (if take 1 choiceMMs == "w" || take 1 choiceMMs == "x" then chooseMax wrs ks arr gs js vs id h coeffsWX qs choiceMMs "" else chooseMax wrs ks arr gs js vs id h coeffs qs choiceMMs "")) .
+         rs = parMap rpar (\choiceMMs -> let sels = parsey0Choice g1 choiceMMs in (minMax11C .
+           map (toTransPropertiesF'2 (if take 1 choiceMMs == "w" || take 1 choiceMMs == "x" then chooseMax wrs ks arr gs js vs id h coeffsWX sels qs choiceMMs "" else chooseMax wrs ks arr gs js vs id h coeffs sels qs choiceMMs "")) .
              map StrG . uniquenessVariants2GNBL ' ' id id id permsV5 $ v2,
-               toTransPropertiesF'2 (if take 1 choiceMMs == "w" || take 1 choiceMMs == "x" then chooseMax wrs ks arr gs js vs id h coeffsWX qs choiceMMs "" else chooseMax wrs ks arr gs js vs id h coeffs qs choiceMMs "") .
+               toTransPropertiesF'2 (if take 1 choiceMMs == "w" || take 1 choiceMMs == "x" then chooseMax wrs ks arr gs js vs id h coeffsWX sels qs choiceMMs "" else chooseMax wrs ks arr gs js vs id h coeffs sels qs choiceMMs "") .
                  StrG . unwords . subG (' ':js `mappend` vs) $ v,gz)) multiples4
          (!wordsN,!intervalNs) = (l2 + 2, map (\((!x,!y),!z,!t) -> intervalNRealFrac x y t z) rs)
            in do
diff --git a/Phonetic/Languages/General/Lines.hs b/Phonetic/Languages/General/Lines.hs
--- a/Phonetic/Languages/General/Lines.hs
+++ b/Phonetic/Languages/General/Lines.hs
@@ -45,6 +45,7 @@
 import Interpreter.StringConversion
 import qualified Phonetic.Languages.Permutations.Represent as R
 import Phonetic.Languages.EmphasisG
+import Phonetic.Languages.Coeffs
 
 {-| @ since 0.12.0.0 -- Changed the arguments. Now it can run multiple rewritings for the one given data file
 on the given list of choices for the properties given as the second ['String'] argument. Every new file is being
@@ -73,12 +74,13 @@
  -> String
  -> String
  -> Coeffs2
+ -> (String -> String) -- ^ A function that specifies what 'Char's in the list the first argument makes to be the function sensitive to. Analogue of the @g@ function in the definition: https://hackage.haskell.org/package/phonetic-languages-simplified-examples-array-0.21.0.0/docs/src/Phonetic.Languages.Simplified.Array.Ukrainian.FuncRep2RelatedG2.html#parsey0Choice. Use just small 'Char' if they are letters, do not use \'.\' and spaces.
  -> [String]
  -> [String] -- ^ List of properties encoded which are used to rewrite the text.
  -> Int
  -> FilePath
  -> IO ()
-generalProcessment pairwisePermutations (gr1,gr2) wrs ks arr gs h rs ysss zzzsss xs js vs coeffs numericArgs choices0 numberI file = do
+generalProcessment pairwisePermutations (gr1,gr2) wrs ks arr gs h rs ysss zzzsss xs js vs coeffs g1 numericArgs choices0 numberI file = do
   contents <- readFile file
   let !choices = map (filter (/='a')) choices0
       !permsV
@@ -90,7 +92,7 @@
         | otherwise = prepareGrowTextMN gr1 gr2 ysss zzzsss xs . unlines . fLinesN (if pairwisePermutations /= R.P 0 then 10 else 7) ysss zzzsss xs js vs 0 $ contents
       !lasts = map (\ts -> if null . words $ ts then [] else last . words $ ts) flines
   if compare numberI 2 == LT then
-    mapM_ (\choice -> toFileStr (choice ++ "." ++ file ++ ".new.txt") (circle2 wrs ks arr gs js vs h rs coeffs permsV choice [] $ flines)) choices
+    mapM_ (\choice -> toFileStr (choice ++ "." ++ file ++ ".new.txt") (circle2 wrs ks arr gs js vs h rs coeffs g1 permsV choice [] $ flines)) choices
   else do
     let !intervalNmbrs = (\vs -> if null vs then [numberI] else nub vs) . sort . filter (<= numberI) .
            map (\t -> fromMaybe numberI (readMaybe t::Maybe Int)) . drop 2 $ numericArgs
@@ -98,18 +100,18 @@
         !l2 = (subtract 3) . length $ us
     if compare l2 0 /= LT then do
       let !perms2 = unsafeAt permsV $ l2
-          minMaxTuples = let !frep20Zip = zip choices . map (\choice -> chooseMax wrs ks arr gs js vs id h coeffs rs choice "") $ choices in
+          minMaxTuples = let !frep20Zip = zip choices . map (\choice -> chooseMax wrs ks arr gs js vs id h coeffs (parsey0Choice g1 choice) rs choice "") $ choices in
             map (\(choice,frep20) -> minMax11C . map (toPropertiesF'2 frep20 . StrG) .
                     uniquenessVariants2GNPBL [] (concat . take 1 $ lasts) ' ' id id id perms2 . init $ us) frep20Zip
       mapM_ (\(choice, (minE,maxE)) ->
-        toFileStr (choice ++ "." ++ file ++ ".new.txt") (circle2I wrs ks arr gs js vs h rs coeffs permsV choice [] numberI intervalNmbrs minE maxE $ flines)) .
+        toFileStr (choice ++ "." ++ file ++ ".new.txt") (circle2I wrs ks arr gs js vs h rs coeffs g1 permsV choice [] numberI intervalNmbrs minE maxE $ flines)) .
           zip choices $ minMaxTuples
     else mapM_ (\choice -> toFileStr (choice ++ "." ++ file ++ ".new.txt") ((concat . take 1 $ flines):
-       (circle2I wrs ks arr gs js vs h rs coeffs permsV choice [] numberI intervalNmbrs 0.0 0.0 . drop 1 $ flines))) choices
+       (circle2I wrs ks arr gs js vs h rs coeffs g1 permsV choice [] numberI intervalNmbrs 0.0 0.0 . drop 1 $ flines))) choices
 
 compareFilesToOneCommon :: [FilePath] -> FilePath -> IO ()
 compareFilesToOneCommon files file3 = do
- contentss <- mapM ((\(j,ks) -> do {readFileIfAny ks >>= \fs -> return (j, zip [1..] . lines $ fs)})) . zip [1..7] . take 7 $ files
+ contentss <- mapM ((\(j,ks) -> do {readFileIfAny ks >>= \fs -> return (j, zip [1..] . lines $ fs)})) . zip [1..7] . take 14 $ files
  compareF contentss file3
    where compareF :: [(Int,[(Int,String)])] -> FilePath -> IO ()
          compareF ysss file3 = mapM_ (\i -> do
@@ -140,6 +142,7 @@
  -- syllableDurationsD functions from the @ukrainian-phonetics-basics-array@ package. The first one must be probably the most
  -- exact one and, therefore, the default one.
  -> Coeffs2
+ -> (String -> String) -- ^ A function that specifies what 'Char's in the list the first argument makes to be the function sensitive to. Analogue of the @g@ function in the definition: https://hackage.haskell.org/package/phonetic-languages-simplified-examples-array-0.21.0.0/docs/src/Phonetic.Languages.Simplified.Array.Ukrainian.FuncRep2RelatedG2.html#parsey0Choice. Use just small 'Char' if they are letters, do not use \'.\' and spaces.
  -> Array Int [Array Int Int] -- ^ A permutations array of indices.
  -> String -- ^ Is intended to be one of the following strings: \"02y\", \"02z\", \"03y\", \"03z\", \"04y\", \"04z\",
  -- \"0y\", \"0z\", \"y\", \"y0\", \"y2\", \"y3\", \"y4\", \"yy\", \"yy2\", \"yy3\", \"z\", \"z2\", \"z3\", \"z4\",
@@ -148,13 +151,14 @@
  -> [String]
  -> [String]
  -> [String]
-circle2 wrs ks arr gs js vs h qs coeffs permsG1 choice yss xss
+circle2 wrs ks arr gs js vs h qs coeffs g1 permsG1 choice yss xss
  | null xss = yss
- | otherwise = circle2 wrs ks arr gs js vs h qs coeffs permsG1 choice (yss `mappend` [ws]) tss
+ | otherwise = circle2 wrs ks arr gs js vs h qs coeffs g1 permsG1 choice (yss `mappend` [ws]) tss
       where (!zss,!tss) = splitAt 1 xss
             !rs = words . concat $ zss
             !l = length rs
-            !frep2 = chooseMax wrs ks arr gs js vs id h coeffs qs choice ""
+            !sels = parsey0Choice g1 choice
+            !frep2 = chooseMax wrs ks arr gs js vs id h coeffs sels qs choice ""
             !ws = if compare l 3 == LT then unwords rs else (\rrrr -> fromMaybe "" . fromReadyFCPLS $ rrrr) . line2 . maximumElR2 . map (toResultR2 frep2 . StrG) .
                uniquenessVariants2GNPBL [] (last rs) ' ' id id id (unsafeAt permsG1 (l - 3)) . init $ rs
 
@@ -175,6 +179,7 @@
   -- syllableDurationsD functions from the @ukrainian-phonetics-basics-array@ package. The first one must be probably the most
   -- exact one and, therefore, the default one.
   -> Coeffs2
+  -> (String -> String) -- ^ A function that specifies what 'Char's in the list the first argument makes to be the function sensitive to. Analogue of the @g@ function in the definition: https://hackage.haskell.org/package/phonetic-languages-simplified-examples-array-0.21.0.0/docs/src/Phonetic.Languages.Simplified.Array.Ukrainian.FuncRep2RelatedG2.html#parsey0Choice. Use just small 'Char' if they are letters, do not use \'.\' and spaces.
   -> Array Int [Array Int Int] -- ^ A permutations array of indices.
   -> String -- ^ Is intended to be one of the following strings: \"02y\", \"02z\", \"03y\", \"03z\", \"04y\", \"04z\",
  -- \"0y\", \"0z\", \"y\", \"y0\", \"y2\", \"y3\", \"y4\", \"yy\", \"yy2\", \"yy3\", \"z\", \"z2\", \"z3\", \"z4\",
@@ -187,22 +192,23 @@
   -> Double
   -> [String]
   -> [String]
-circle2I wrs ks arr gs js vs h qs coeffs permsG1 choice yss numberI intervNbrs minE maxE xss
+circle2I wrs ks arr gs js vs h qs coeffs g1 permsG1 choice yss numberI intervNbrs minE maxE xss
  | null xss = yss
- | otherwise = circle2I wrs ks arr gs js vs h qs coeffs permsG1 choice (yss `mappend` [ws]) numberI intervNbrs minE1 maxE1 tss
+ | otherwise = circle2I wrs ks arr gs js vs h qs coeffs g1 permsG1 choice (yss `mappend` [ws]) numberI intervNbrs minE1 maxE1 tss
       where (!zss,!tss) = splitAt 1 xss
             !w2s = words . concat . take 1 $ tss
             !l3 = (subtract 3) . length $ w2s
             !rs = words . concat $ zss
             !l = length rs
-            !frep2 = chooseMax wrs ks arr gs js vs (unsafeSwapVecIWithMaxI minE maxE numberI intervNbrs) h coeffs qs choice ""
+            !sels = parsey0Choice g1 choice
+            !frep2 = chooseMax wrs ks arr gs js vs (unsafeSwapVecIWithMaxI minE maxE numberI intervNbrs) h coeffs sels qs choice ""
             !ws = if compare (length rs) 3 == LT then unwords rs else (\rrrr -> fromMaybe "" . fromReadyFCPLS $ rrrr) . line2 . maximumElR2 . map (toResultR2 frep2 . StrG) .
                uniquenessVariants2GNPBL [] (last rs) ' ' id id id (unsafeAt permsG1 (l - 3)) . init $ rs
             (!minE1,!maxE1)
              | compare l3 0 /= LT =
                let !perms3 = unsafeAt permsG1 l3
                    !v4 = init w2s
-                   !frep20 = chooseMax wrs ks arr gs js vs id h coeffs qs choice "" in minMax11C . map (toPropertiesF'2 frep20 . StrG) .
+                   !frep20 = chooseMax wrs ks arr gs js vs id h coeffs sels qs choice "" in minMax11C . map (toPropertiesF'2 frep20 . StrG) .
                       uniquenessVariants2GNPBL [] (last w2s) ' ' id id id perms3 $ v4
              | otherwise = (0.0,0.0)
 
diff --git a/Phonetic/Languages/General/Lines/Parsing.hs b/Phonetic/Languages/General/Lines/Parsing.hs
--- a/Phonetic/Languages/General/Lines/Parsing.hs
+++ b/Phonetic/Languages/General/Lines/Parsing.hs
@@ -29,6 +29,7 @@
 import CLI.Arguments.Parsing
 import CLI.Arguments.Get
 import qualified Phonetic.Languages.Permutations.Represent as R
+import Phonetic.Languages.Coeffs
 
 -- | The function allows to rewrite the phonetic language 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
@@ -56,8 +57,9 @@
  -> [MappingFunctionPL] -- ^ A list of 'PhoPaaW'-based different functions that specifies the syllables durations in the PhoPaaW mode, analogues of the
  -- syllableDurationsD functions from the @ukrainian-phonetics-basics-array@ package. The first one must be probably the most
  -- exact one and, therefore, the default one.
+ -> (String -> String)  -- ^ A function that specifies what 'Char's in the list the first argument makes to be the function sensitive to. Analogue of the @g@ function in the definition: https://hackage.haskell.org/package/phonetic-languages-simplified-examples-array-0.21.0.0/docs/src/Phonetic.Languages.Simplified.Array.Ukrainian.FuncRep2RelatedG2.html#parsey0Choice. Use just small 'Char' if they are letters, do not use \'.\' and spaces.
  -> IO ()
-argsToLinePrepare h qs = do
+argsToLinePrepare h qs g1 = do
  args50 <- getArgs
  let (argsA,argsB,argsC1,_) = args2Args31R fstCharsM specs1 args50
      (prWP,args000) = takeBsR [("+p",1)] args50
@@ -90,7 +92,7 @@
       args0 = drop 5 args000
       [fileGWrSys, controlFile, segmentRulesFile, concatenationsFileP, concatenationsFileA] = drop 1 . take 6 $ args00 -- To get the valid 'Concatenations' data.
   (wrs, ks, arr, gs, js, vs, ysss, zzzsss, xs, numericArgs, choices, numberI, file) <- files4Processment fileGWrSys controlFile segmentRulesFile concatenationsFileP concatenationsFileA multiple args0
-  generalProcessment pairwisePermutations (gr1,gr2) wrs ks arr gs h qs ysss zzzsss xs js vs {- the old arguments afterwards -} coeffs numericArgs choices numberI file
+  generalProcessment pairwisePermutations (gr1,gr2) wrs ks arr gs h qs ysss zzzsss xs js vs {- the old arguments afterwards -} coeffs g1 numericArgs choices numberI file
 
 -- | Is used internally in the 'argsToLinePrepare'. Nevertheless, can be used independently if the semantics
 -- of the arguments and their structure are preserved.
diff --git a/Phonetic/Languages/General/Simple.hs b/Phonetic/Languages/General/Simple.hs
--- a/Phonetic/Languages/General/Simple.hs
+++ b/Phonetic/Languages/General/Simple.hs
@@ -30,7 +30,7 @@
 import Phonetic.Languages.Simplified.StrictVG.Base
 import Data.Phonetic.Languages.Base
 import Data.Phonetic.Languages.PrepareText
-import Data.Char (isDigit,isAlpha,isLetter)
+import Data.Char
 import qualified Data.List  as L (span,sort,zip4,isPrefixOf,nub,sortBy,intersperse)
 import Phonetic.Languages.Simplified.Array.General.FuncRep2RelatedG2
 import Phonetic.Languages.Permutations.Arr
@@ -45,9 +45,11 @@
 import Phonetic.Languages.General.Common
 import Data.Phonetic.Languages.Syllables
 import Interpreter.StringConversion
+import Interpreter.ArgsConversion
 import qualified Phonetic.Languages.Permutations.Represent as R
 import Phonetic.Languages.EmphasisG
 import CaseBi.Arr (getBFstLSorted')
+import Phonetic.Languages.Coeffs
 
 forMultiplePropertiesF :: [String] -> [(String,[String])]
 forMultiplePropertiesF (xs:xss)
@@ -96,15 +98,16 @@
  -> Bool -- ^ Whether to use volatile string weights
  -> Int -- ^ Number of sets of volatile string weights for every processed line. Is used when the previous one is 'True'
  -> Int -- ^ Whether to print more verbose information in the output with sorting in some way
+ -> (String -> String)  -- ^ A function that specifies what 'Char's in the list the first argument makes to be the function sensitive to. Analogue of the @g@ function in the definition: https://hackage.haskell.org/package/phonetic-languages-simplified-examples-array-0.21.0.0/docs/src/Phonetic.Languages.Simplified.Array.Ukrainian.FuncRep2RelatedG2.html#parsey0Choice. Use just small 'Char' if they are letters, do not use \'.\' and spaces.
  -> IO ()
-generalProc3G pairwisePermutations p textProcessmentFss textProcessment0 textProcessment1 wrs ks arr gs js vs h qs ysss zzzsss ws toFile1 recursiveMode interactive jstL0 args0 coeffs coeffsWX args lstW2 syllables syllablesVs verbose
- | null textProcessment0 = generalProc2G pairwisePermutations wrs ks arr gs js vs h qs ysss zzzsss ws toFile1 recursiveMode interactive jstL0 args0 coeffs coeffsWX args lstW2 syllables syllablesVs verbose
+generalProc3G pairwisePermutations p textProcessmentFss textProcessment0 textProcessment1 wrs ks arr gs js vs h qs ysss zzzsss ws toFile1 recursiveMode interactive jstL0 args0 coeffs coeffsWX args lstW2 syllables syllablesVs verbose g1
+ | null textProcessment0 = generalProc2G pairwisePermutations wrs ks arr gs js vs h qs ysss zzzsss ws toFile1 recursiveMode interactive jstL0 args0 coeffs coeffsWX args lstW2 syllables syllablesVs verbose g1
  | null textProcessmentFss = mapM_ (\_ -> do  -- interactive training mode
     putStrLn . messageInfo $ 7
     lineA <- getLine
     generalProc2G pairwisePermutations wrs ks arr gs js vs h qs ysss zzzsss ws toFile1 recursiveMode interactive jstL0
       (fullArgsConvertTextualSimple p lineA args0) coeffs coeffsWX (fullArgsConvertTextualSimple p lineA args)
-      lstW2 syllables syllablesVs verbose) [0..]
+      lstW2 syllables syllablesVs verbose g1) [0..]
  | otherwise =
       mapM_ (\js -> do
         let !kss = lines js
@@ -114,14 +117,14 @@
                 | otherwise = prepareTuneTextMN m 1 ysss zzzsss ws . unwords $ kss
           mapM_ (\tss -> generalProc2G pairwisePermutations wrs ks arr gs js vs h qs ysss zzzsss ws toFile1 recursiveMode
                  interactive jstL0 (fullArgsConvertTextualSimple p tss args0) coeffs coeffsWX
-                  (fullArgsConvertTextualSimple p tss args) lstW2 syllables syllablesVs verbose) wss
+                  (fullArgsConvertTextualSimple p tss args) lstW2 syllables syllablesVs verbose g1) wss
         else do
           let !wss
                | textProcessment1 `elem` [20,30,40,50,60,70] = kss
                | otherwise = prepareTuneTextMN (if textProcessment1 `elem` [21,31,41,51,61] then m else 7) 1 ysss zzzsss ws . unwords $ kss
           mapM_ (\tss -> generalProc2G pairwisePermutations wrs ks arr gs js vs h qs ysss zzzsss ws toFile1 recursiveMode interactive jstL0
                  (fullArgsConvertTextualSimple p tss args0) coeffs coeffsWX
-                  (fullArgsConvertTextualSimple p tss args) lstW2 syllables syllablesVs verbose) wss) textProcessmentFss
+                  (fullArgsConvertTextualSimple p tss args) lstW2 syllables syllablesVs verbose g1) wss) textProcessmentFss
      where m = if textProcessment1 == 10 || textProcessment1 == 11 then 10 else quot textProcessment1 10
 
 -- | Is used to do general processment.
@@ -158,19 +161,20 @@
  -> Bool -- ^ Whether to use volatile string weights
  -> Int -- ^ Number of sets of volatile string weights for every processed line. Is used when the previous one is 'True'
  -> Int 
+ -> (String -> String) -- ^ A function that specifies what 'Char's in the list the first argument makes to be the function sensitive to. Analogue of the @g@ function in the definition: https://hackage.haskell.org/package/phonetic-languages-simplified-examples-array-0.21.0.0/docs/src/Phonetic.Languages.Simplified.Array.Ukrainian.FuncRep2RelatedG2.html#parsey0Choice. Use just small 'Char' if they are letters, do not use \'.\' and spaces.
  -> IO ()
-generalProc2G pairwisePermutations wrs ks arr gs js vs h qs ysss zzzsss ws toFile1 recursiveMode interactive jstL0 args0 coeffs coeffsWX args lstW2 syllables syllablesVs verbose
+generalProc2G pairwisePermutations wrs ks arr gs js vs h qs ysss zzzsss ws toFile1 recursiveMode interactive jstL0 args0 coeffs coeffsWX args lstW2 syllables syllablesVs verbose g1
  | variations args = do
     let !zsss = transformToVariations args
-    variantsG <- mapM (\xss -> generalProc2 pairwisePermutations wrs ks arr gs js vs h qs [] ysss zzzsss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX xss lstW2 syllables syllablesVs verbose) zsss
+    variantsG <- mapM (\xss -> generalProc2 pairwisePermutations wrs ks arr gs js vs h qs [] ysss zzzsss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX xss lstW2 syllables syllablesVs verbose g1) zsss
     if interactive then do
          (if recursiveMode then interactivePrintResultRecursive pairwisePermutations wrs ks arr gs js vs h qs [] ysss zzzsss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX (showR . fst) 
-             variantsG args lstW2 syllables syllablesVs verbose else interactivePrintResult (showR . fst) variantsG syllables syllablesVs) >>= \(rs,cs) ->
+             variantsG args lstW2 syllables syllablesVs verbose g1 else interactivePrintResult (showR . fst) variantsG syllables syllablesVs) >>= \(rs,cs) ->
            case toFile1 of
             "" -> return ()
             ~fileName -> appendFile fileName (convFSL wrs ks arr gs js vs cs rs `mappend` newLineEnding)
     else return ()
- | otherwise = generalProc2 pairwisePermutations wrs ks arr gs js vs h qs [] ysss zzzsss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX args lstW2 syllables syllablesVs verbose >>= \(rs,cs) ->
+ | otherwise = generalProc2 pairwisePermutations wrs ks arr gs js vs h qs [] ysss zzzsss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX args lstW2 syllables syllablesVs verbose g1 >>= \(rs,cs) ->
       case toFile1 of
        "" -> return ()
        ~fileName -> appendFile fileName (convFSL wrs ks arr gs js vs cs rs `mappend` newLineEnding)
@@ -209,8 +213,9 @@
   -> Bool -- ^ Whether to use volatile string weights
   -> Int -- ^ Number of sets of volatile string weights for every processed line. Is used when the previous one is 'True'
   -> Int
+  -> (String ->  String) -- ^ A function that specifies what 'Char's in the list the first argument makes to be the function sensitive to. Analogue of the @g@ function in the definition: https://hackage.haskell.org/package/phonetic-languages-simplified-examples-array-0.21.0.0/docs/src/Phonetic.Languages.Simplified.Array.Ukrainian.FuncRep2RelatedG2.html#parsey0Choice. Use just small 'Char' if they are letters, do not use \'.\' and spaces.
   -> IO (ReadyForConstructionPL, String)
-generalProc2 pairwisePermutations wrs ks arr gs js vs h qs sDs ysss zzzsss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX args lstW2 syllables syllablesVs verbose = do
+generalProc2 pairwisePermutations wrs ks arr gs js vs h qs sDs ysss zzzsss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX args lstW2 syllables syllablesVs verbose g1 = do
  let !argMss = take 5 . filter (not . null) . forMultiplePropertiesF . drop 1 . dropWhile (/= "+m") . takeWhile (/= "-m") $ args0
  if null argMss then do
   let (!numericArgs,!textualArgs) = L.span (all isDigit) $ args
@@ -222,11 +227,12 @@
       !arg0 = concat . take 1 $ numericArgs
       !numberI = fromMaybe 1 $ (readMaybe (concat . drop 1 . take 2 $ numericArgs)::Maybe Int)
       !choice = concat . take 1 $ textualArgs
+      !sels = parsey0Choice g1 choice
       !intervalNmbrs = (\zs -> if null zs then [numberI] else L.nub zs) . L.sort . filter (<= numberI) .
           map (\t -> fromMaybe numberI $ (readMaybe t::Maybe Int)) . drop 2 $ numericArgs
   (if syllables then do weightsString3NIO wrs ks arr gs js vs syllablesVs (any (== 'a') choice) bs else return ([],[],StrG [])) >>= \(syllDs,syllableDs,readys) -> do
-   if compare l 2 == LT then let !frep20 = chooseMax wrs ks arr gs js vs id h (if any (\t -> t == 'x' || t  == 'w') choice then coeffsWX else coeffs) (if any (== 'a') choice then map SaaW syllableDs else qs) choice bs in let !wwss = (:[]) . toResultR2 frep20 $ xs in
-    if recursiveMode then interactivePrintResultRecursive pairwisePermutations wrs ks arr gs js vs h qs  (if any (== 'a') choice then map SaaW syllableDs else sDs) ysss zzzsss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX (convFSL wrs ks arr gs js vs bs . line2) wwss args lstW2 syllables syllablesVs verbose
+   if compare l 2 == LT then let !frep20 = chooseMax wrs ks arr gs js vs id h (if any (\t -> t == 'x' || t  == 'w') choice then coeffsWX else coeffs) sels (if any (== 'a') choice then map SaaW syllableDs else qs) choice bs in let !wwss = (:[]) . toResultR2 frep20 $ xs in
+    if recursiveMode then interactivePrintResultRecursive pairwisePermutations wrs ks arr gs js vs h qs  (if any (== 'a') choice then map SaaW syllableDs else sDs) ysss zzzsss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX (convFSL wrs ks arr gs js vs bs . line2) wwss args lstW2 syllables syllablesVs verbose g1
     else if interactive then interactivePrintResult (convFSL wrs ks arr gs js vs bs . line2) wwss syllables syllablesVs else print1el jstL0 choice wwss
    else do
     let !subs = subG (' ':js `mappend` vs) bs
@@ -234,15 +240,15 @@
                               | pairwisePermutations == R.P 2 = genPairwisePermutationsLN l
                               | pairwisePermutations == R.P 1 = genElementaryPermutationsLN1 l
                               | otherwise = genPermutationsL l in do
-          temp <- generalProcMs wrs ks arr gs js vs h qs (if any (== 'a') choice then map SaaW syllableDs else sDs) coeffs coeffsWX perms subs (intervalNmbrs, arg0, numberI, choice)
-          if recursiveMode then interactivePrintResultRecursive pairwisePermutations wrs ks arr gs js vs h qs (if any (== 'a') choice then map SaaW syllableDs else sDs) ysss zzzsss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX (convFSL wrs ks arr gs js vs bs . line2) temp args lstW2 syllables syllablesVs verbose
+          temp <- generalProcMs wrs ks arr gs js vs h qs (if any (== 'a') choice then map SaaW syllableDs else sDs) coeffs coeffsWX perms subs (intervalNmbrs, arg0, numberI, choice) g1
+          if recursiveMode then interactivePrintResultRecursive pairwisePermutations wrs ks arr gs js vs h qs (if any (== 'a') choice then map SaaW syllableDs else sDs) ysss zzzsss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX (convFSL wrs ks arr gs js vs bs . line2) temp args lstW2 syllables syllablesVs verbose g1
           else if interactive then interactivePrintResult (convFSL wrs ks arr gs js vs bs . line2) temp syllables syllablesVs else print1el jstL0 choice temp
     else do
      correct <- printWarning bs
      if correct == "n" then putStrLn (messageInfo 1) >> return (StrG "","") -- for the multiple variations mode (with curly brackets and slash in the text) the program does not stop here, but the variation is made empty and is proposed further as a variant.
      else let !perms = decodeLConstraints argCs . (if pairwisePermutations == R.P 2 then genPairwisePermutationsLN else if pairwisePermutations == R.P 0 then genPermutationsL else genElementaryPermutationsLN1) $ l in do
-          temp <- generalProcMs wrs ks arr gs js vs h qs  (if any (== 'a') choice then map SaaW syllableDs else sDs) coeffs coeffsWX perms subs (intervalNmbrs, arg0, numberI, choice)
-          if recursiveMode then interactivePrintResultRecursive pairwisePermutations wrs ks arr gs js vs h qs (if any (== 'a') choice then map SaaW syllableDs else sDs) ysss zzzsss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX (convFSL wrs ks arr gs js vs bs . line2) temp args lstW2 syllables syllablesVs verbose
+          temp <- generalProcMs wrs ks arr gs js vs h qs  (if any (== 'a') choice then map SaaW syllableDs else sDs) coeffs coeffsWX perms subs (intervalNmbrs, arg0, numberI, choice) g1
+          if recursiveMode then interactivePrintResultRecursive pairwisePermutations wrs ks arr gs js vs h qs (if any (== 'a') choice then map SaaW syllableDs else sDs) ysss zzzsss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX (convFSL wrs ks arr gs js vs bs . line2) temp args lstW2 syllables syllablesVs verbose g1
           else if interactive then interactivePrintResult (convFSL wrs ks arr gs js vs bs . line2) temp syllables syllablesVs else print1el jstL0 choice temp
   else do
    let !choices = map fst argMss
@@ -259,9 +265,9 @@
        !argCs = catMaybes (fmap (readMaybeECG (l - 1)) . (showB l lstW2:) . drop 1 . dropWhile (/= "+a") .
           takeWhile (/= "-a") $ args0)
    (syllDs,syllableDs,readys) <- do if syllables then weightsString3NIO  wrs ks arr gs js vs syllablesVs (any id (map (any (== 'a')) choices)) bs else return ([],[],FSLG [])
-   if compare l 2 == LT then let !frep20 = chooseMax wrs ks arr gs js vs id h coeffs  (if any (== 'a') . concat . take 1 $ choices then map SaaW syllableDs else qs) (concat . take 1 $ choices) bs in
+   if compare l 2 == LT then let !frep20 = chooseMax wrs ks arr gs js vs id h coeffs [] (if any (== 'a') . concat . take 1 $ choices then map SaaW syllableDs else qs) (concat . take 1 $ choices) bs in
     let !wwss = (:[]) . toResultR2 frep20 $ xs in
-       if recursiveMode then interactivePrintResultRecursive pairwisePermutations wrs ks arr gs js vs h qs (if syllables then map SaaW syllableDs else sDs) ysss zzzsss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX (convFSL wrs ks arr gs js vs bs . line2) wwss args lstW2 syllables syllablesVs verbose
+       if recursiveMode then interactivePrintResultRecursive pairwisePermutations wrs ks arr gs js vs h qs (if syllables then map SaaW syllableDs else sDs) ysss zzzsss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX (convFSL wrs ks arr gs js vs bs . line2) wwss args lstW2 syllables syllablesVs verbose g1
        else if interactive then interactivePrintResult (convFSL wrs ks arr gs js vs bs . line2) wwss syllables syllablesVs
             else print1el jstL0 (concat . take 1 $ choices) wwss
    else do
@@ -270,12 +276,12 @@
                              | pairwisePermutations == R.P 2 = genPairwisePermutationsLN l
                              | pairwisePermutations == R.P 1 = genElementaryPermutationsLN1 l
                              | otherwise = genPermutationsL l in
-      generalProcMMs pairwisePermutations wrs ks arr gs js vs h qs (map SaaW syllableDs) ysss zzzsss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX argsZipped perms subs args lstW2 syllables syllablesVs verbose
+      generalProcMMs pairwisePermutations wrs ks arr gs js vs h qs (map SaaW syllableDs) ysss zzzsss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX argsZipped perms subs args lstW2 syllables syllablesVs verbose g1
     else do
      correct <- printWarning bs
      if correct == "n" then putStrLn (messageInfo 1) >> return (StrG "","") -- for the multiple variations mode (with curly brackets and slash in the text) the program does not stop here, but the variation is made empty and is proposed further as a variant.
      else let !perms = decodeLConstraints argCs . (case pairwisePermutations of {R.P 2 -> genPairwisePermutationsLN ; R.P 1 -> genElementaryPermutationsLN1 ; ~rrr -> genPermutationsL}) $ l in
-            generalProcMMs pairwisePermutations wrs ks arr gs js vs h qs (map SaaW syllableDs) ysss zzzsss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX argsZipped perms subs args lstW2 syllables syllablesVs verbose
+            generalProcMMs pairwisePermutations wrs ks arr gs js vs h qs (map SaaW syllableDs) ysss zzzsss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX argsZipped perms subs args lstW2 syllables syllablesVs verbose g1
 
 -- | Function provides message information.
 messageInfo :: Int -> String
@@ -346,8 +352,9 @@
  -> Bool -- ^ Whether to use volatile string weights
  -> Int -- ^ Number of sets of volatile string weights for every processed line. Is used when the previous one is 'True'
  -> Int
+ -> (String -> String) -- ^ A function that specifies what 'Char's in the list the first argument makes to be the function sensitive to. Analogue of the @g@ function in the definition: https://hackage.haskell.org/package/phonetic-languages-simplified-examples-array-0.21.0.0/docs/src/Phonetic.Languages.Simplified.Array.Ukrainian.FuncRep2RelatedG2.html#parsey0Choice. Use just small 'Char' if they are letters, do not use \'.\' and spaces.
  -> IO (ReadyForConstructionPL,String)
-interactivePrintResultRecursive pairwisePermutations wrs ks arr gs js vs h qs sDs ysss zzzsss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX f xss args lstW2 syllables syllablesVs verbose
+interactivePrintResultRecursive pairwisePermutations wrs ks arr gs js vs h qs sDs ysss zzzsss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX f xss args lstW2 syllables syllablesVs verbose g1
   | null xss = (putStrLn . messageInfo $ 5) >> return (StrG "","")
   | otherwise = do
      let !datas = map (\(idx,str) -> show idx `mappend` ('\t' : str)) . trans232 . map f $ xss
@@ -361,15 +368,31 @@
      stringInterpreted <- getLine
      if null stringInterpreted then putStrLn ts >> return (StrG ts,ts)
      else do
-       let !firstArgs = takeWhile (not . all isLetter) args
-       strIntrpr <- convStringInterpreterIO stringInterpreted ts
+       let (strI10,convArgs0) = break (== '+') stringInterpreted
+           strI1 = filter (not . isSpace) strI10
+           (convArgs1,convArgs) = splitAt 2 convArgs0
+           cnvArgs = min 1 (fromMaybe 0 (readMaybe (drop 1 convArgs1)::Maybe Int))
+           (_,pairwisePermutations1,_,jstL01,args01,coeffs1,coeffsWX1,args1,lstW1,syllables1,syllablesVs1,verbose1) = argsConversion convArgs
+           lstW3 = if lstW1 then lstW1 else lstW2
+           jstL02 = if jstL01 then jstL01 else jstL0
+ --           !firstArgs = takeWhile (not . all isLetter) args2
+           args02 = if cnvArgs > 0 && cnvArgs < 5 then args01 else args0
+           args2 = if cnvArgs `elem` [1,2,5,6] then  args1 else args
+           firstArgs = takeWhile (not . all  isLetter) args2
+           coeffs2 = if isPair coeffs1 then coeffs1 else coeffs
+           coeffsWX2 = if isPair coeffsWX1 then coeffsWX1 else coeffsWX
+           syllables2 = if syllables1 then syllables1 else syllables
+           syllablesVs2 = if syllables1 then syllablesVs1 else syllablesVs
+           pairwisePermutations2 = if cnvArgs `elem` [1,3,5,7]  then pairwisePermutations1 else pairwisePermutations
+           verbose2 = if verbose1 == 0 then verbose else verbose1
+       strIntrpr <- convStringInterpreterIO strI1 ts
        wordsNN <-
          if pairwisePermutations /= R.P 0 then do
            putStrLn . messageInfo $ 8
            mStr <- getLine
            let m = fromMaybe 10 (readMaybe mStr::Maybe Int) in return . take m . words $ strIntrpr
          else return . take 7 . words $ strIntrpr
-       generalProc2 pairwisePermutations wrs ks arr gs js vs h qs sDs ysss zzzsss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX (firstArgs `mappend` wordsNN) lstW2 syllables syllablesVs verbose
+       generalProc2 pairwisePermutations wrs ks arr gs js vs h qs sDs ysss zzzsss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX (firstArgs `mappend` wordsNN) lstW2 syllables syllablesVs verbose g1
 
 printWarning :: String -> IO String
 printWarning xs = do
@@ -379,7 +402,7 @@
 
 show2 verbose jjs@(R2  x y z:_) = show1 bs   
        where bs = L.sortBy (\(R2 xs d1 k1) (R2 ys d2 k2) -> case verbose of 
-               2 -> compare d2 d1
+               2 -> if d1 == d2 then compare xs ys else compare d2 d1
                1 -> compare xs ys
                3 -> compare k2 k1
                _ -> EQ) jjs 
@@ -415,18 +438,20 @@
  -- to get the result. The \"z\"-line uses \'F\' functions.
  -- @ since 0.6.0.0
  -- Changed the arguments signing so that capital letters changed to the small ones, double ++ changed to just singular +.
+ -> (String -> String) -- ^ A function that specifies what 'Char's in the list the first argument makes to be the function sensitive to. Analogue of the @g@ function in the definition: https://hackage.haskell.org/package/phonetic-languages-simplified-examples-array-0.21.0.0/docs/src/Phonetic.Languages.Simplified.Array.Ukrainian.FuncRep2RelatedG2.html#parsey0Choice. Use just small 'Char' if they are letters, do not use \'.\' and spaces.
  -> IO [Result2 ReadyForConstructionPL Double Double]
-generalProcMs wrs ks arr gs js vs h qs sDs coeffs coeffsWX perms subs (intervalNmbrs, arg0, numberI, choice) = do
+generalProcMs wrs ks arr gs js vs h qs sDs coeffs coeffsWX perms subs (intervalNmbrs, arg0, numberI, choice) g1 = do
   let bs = unwords subs
+      sels = parsey0Choice g1 choice
   if compare numberI 2 == LT
-   then let !frep2 =  chooseMax wrs ks arr gs js vs id h (if any (\t -> t == 'w' || t == 'x') choice then coeffsWX else coeffs) (if any (== 'a') choice then sDs else qs) choice bs
+   then let !frep2 =  chooseMax wrs ks arr gs js vs id h (if any (\t -> t == 'w' || t == 'x') choice then coeffsWX else coeffs) sels (if any (== 'a') choice then sDs else qs) choice bs
                 in return . fst . (if any (== 'G') choice then partitioningR2 arg0 else maximumGroupsClassificationR_2 (fromMaybe 1 (readMaybe arg0::Maybe Int))) . map (toResultR2 frep2) . map StrG . uniquenessVariants2GNBL ' ' id id id perms $ subs
    else do
     let !variants1 = uniquenessVariants2GNBL ' ' id id id perms subs
-        !frep20 = chooseMax wrs ks arr gs js vs id h (if any (\t -> t == 'x' || t == 'w') choice then coeffsWX else coeffs) (if any (== 'a') choice then sDs else qs) choice bs
+        !frep20 = chooseMax wrs ks arr gs js vs id h (if any (\t -> t == 'x' || t == 'w') choice then coeffsWX else coeffs) sels (if any (== 'a') choice then sDs else qs) choice bs
         (!minE,!maxE) = minMax11C . map (toPropertiesF'2 frep20) $ map StrG variants1
         !frep2 = chooseMax wrs ks arr gs js vs (unsafeSwapVecIWithMaxI minE maxE numberI intervalNmbrs) h 
-           (if any (\t -> t == 'x' || t == 'w') choice then coeffsWX else coeffs) (if any (== 'a') choice then sDs else qs) choice bs 
+           (if any (\t -> t == 'x' || t == 'w') choice then coeffsWX else coeffs) sels (if any (== 'a') choice then sDs else qs) choice bs 
     return . fst . (if any (== 'G') choice then partitioningR2 arg0 else maximumGroupsClassificationR_2 (fromMaybe 1 (readMaybe arg0::Maybe Int))) . map (toResultR2 frep2) $ map StrG variants1
 
 -- |
@@ -472,18 +497,19 @@
  -> Bool -- ^ Whether to use volatile string weights
  -> Int -- ^ Number of sets of volatile string weights for every processed line. Is used when the previous one is 'True'
  -> Int
+ -> (String -> String) -- ^ A function that specifies what 'Char's in the list the first argument makes to be the function sensitive to. Analogue of the @g@ function in the definition: https://hackage.haskell.org/package/phonetic-languages-simplified-examples-array-0.21.0.0/docs/src/Phonetic.Languages.Simplified.Array.Ukrainian.FuncRep2RelatedG2.html#parsey0Choice. Use just small 'Char' if they are letters, do not use \'.\' and spaces.
  -> IO (ReadyForConstructionPL, String)
-generalProcMMs pairwisePermutations wrs ks arr gs js vs h qs sDs ysss zzzsss ws recursiveMode interactiveMM jstL0 args0 coeffs coeffsWX rs perms subs args lstW2 syllables syllablesVs verbose=
+generalProcMMs pairwisePermutations wrs ks arr gs js vs h qs sDs ysss zzzsss ws recursiveMode interactiveMM jstL0 args0 coeffs coeffsWX rs perms subs args lstW2 syllables syllablesVs verbose g1 =
  case length rs of
   0 -> putStrLn (messageInfo 4) >> return (StrG "","")
   1 -> putStrLn (messageInfo 5) >> do
-        temp <- generalProcMs wrs ks arr gs js vs h qs sDs coeffs coeffsWX perms subs (head rs)
+        temp <- generalProcMs wrs ks arr gs js vs h qs sDs coeffs coeffsWX perms subs (head rs) g1
         if verbose `elem` [1..3] then print2 verbose temp >> putStrLn "" else putStr ""
-        finalProc pairwisePermutations wrs ks arr gs js vs h qs sDs ysss zzzsss ws recursiveMode interactiveMM jstL0 args0 coeffs coeffsWX (convFSL wrs ks arr gs js vs (unwords args) . line2) temp args lstW2 syllables syllablesVs verbose
+        finalProc pairwisePermutations wrs ks arr gs js vs h qs sDs ysss zzzsss ws recursiveMode interactiveMM jstL0 args0 coeffs coeffsWX (convFSL wrs ks arr gs js vs (unwords args) . line2) temp args lstW2 syllables syllablesVs verbose g1
   _ -> do
-         genVariants <- mapM (\k-> generalProcMs wrs ks arr gs js vs h qs sDs coeffs coeffsWX perms subs k) rs
+         genVariants <- mapM (\k-> generalProcMs wrs ks arr gs js vs h qs sDs coeffs coeffsWX perms subs k g1) rs
          if verbose `elem` [1..3] then mapM_ (\t -> print2 verbose t >> putStrLn "") genVariants else putStr ""
-         finalProc pairwisePermutations wrs ks arr gs js vs h qs sDs ysss zzzsss ws recursiveMode interactiveMM jstL0 args0 coeffs coeffsWX (convFSL wrs ks arr gs js vs (unwords args)) (foldlI wrs ks arr gs js vs (unwords args). map (map line2) $ genVariants) args lstW2 syllables syllablesVs verbose
+         finalProc pairwisePermutations wrs ks arr gs js vs h qs sDs ysss zzzsss ws recursiveMode interactiveMM jstL0 args0 coeffs coeffsWX (convFSL wrs ks arr gs js vs (unwords args)) (foldlI wrs ks arr gs js vs (unwords args). map (map line2) $ genVariants) args lstW2 syllables syllablesVs verbose g1
 
 -- |
 finalProc
@@ -521,9 +547,10 @@
  -> Bool -- ^ Whether to use volatile string weights
  -> Int -- ^ Number of sets of volatile string weights for every processed line. Is used when the previous one is 'True'
  -> Int
+ -> (String -> String) -- ^ A function that specifies what 'Char's in the list the first argument makes to be the function sensitive to. Analogue of the @g@ function in the definition: https://hackage.haskell.org/package/phonetic-languages-simplified-examples-array-0.21.0.0/docs/src/Phonetic.Languages.Simplified.Array.Ukrainian.FuncRep2RelatedG2.html#parsey0Choice. Use just small 'Char' if they are letters, do not use \'.\' and spaces.
  -> IO (ReadyForConstructionPL,String)
-finalProc  pairwisePermutations wrs ks arr gs js vs h qs sDs ysss zzzsss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX f xss args lstW2 syllables syllablesVs verbose
- | recursiveMode = interactivePrintResultRecursive pairwisePermutations wrs ks arr gs js vs h qs sDs ysss zzzsss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX f xss args lstW2 syllables syllablesVs verbose
+finalProc  pairwisePermutations wrs ks arr gs js vs h qs sDs ysss zzzsss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX f xss args lstW2 syllables syllablesVs verbose g1
+ | recursiveMode = interactivePrintResultRecursive pairwisePermutations wrs ks arr gs js vs h qs sDs ysss zzzsss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX f xss args lstW2 syllables syllablesVs verbose g1
  | otherwise = if interactive then interactivePrintResult f xss syllables syllablesVs else putStrLn ts >> return (StrG ts,ts)
   where ts = concatMap (\t -> f t `mappend` newLineEnding) xss
 
diff --git a/Phonetic/Languages/General/Simple/Parsing.hs b/Phonetic/Languages/General/Simple/Parsing.hs
--- a/Phonetic/Languages/General/Simple/Parsing.hs
+++ b/Phonetic/Languages/General/Simple/Parsing.hs
@@ -31,6 +31,7 @@
 import CLI.Arguments.Get
 import qualified Phonetic.Languages.Permutations.Represent as R
 import Phonetic.Languages.EmphasisG
+import Phonetic.Languages.Coeffs
 
 -- | Prints the rearrangements with the \"property\" information for the phonetic language text.
 -- Most of the arguments are obtained from the 'getArgs' function.
@@ -68,8 +69,9 @@
    -- syllableDurationsD functions from the @ukrainian-phonetics-basics-array@ package. The first one must be probably the most
    --   -- exact one and, therefore, the default one.
  -> (String -> Bool) -- ^ The predicate that checks whether the given argument is not a phonetic language word in the representation.
+ -> (String -> String) -- ^ A function that specifies what 'Char's in the list the first argument makes to be the function sensitive to. Analogue of the @g@ function in the definition: https://hackage.haskell.org/package/phonetic-languages-simplified-examples-array-0.21.0.0/docs/src/Phonetic.Languages.Simplified.Array.Ukrainian.FuncRep2RelatedG2.html#parsey0Choice. Use just small 'Char' if they are letters, do not use \'.\' and spaces.
  -> IO ()
-argsToSimplePrepare h qs p = do
+argsToSimplePrepare h qs p g1 = do
  args50 <- getArgs
  let (argsA,argsB,argsC1,argss) = args2Args31R fstCharsMA specs1 args50
      args00000 = snd . takeBsR [("+p",1)] $ args50
@@ -88,8 +90,8 @@
  let (wrs, ks, arr, gs, js, vs, ysss, zzzsss, ws) = innerProcessmentSimple gwrsCnts controlConts segmentData concatenationsFileP1 concatenationsFileA1
  textProcessmentFss0 <- mapM (readFileIfAny) textProcessmentFssFs
  let textProcessmentFss = filter (not . null) textProcessmentFss0
- if isPair coeffs then generalProc3G pairwisePermutations p textProcessmentFss textProcessment0 textProcessment1 wrs ks arr gs js vs h qs ysss zzzsss ws {- old arguments follow -} toFileMode1 recursiveMode interactiveP jstL0 args0 coeffs coeffsWX (drop 1 args) lstW syllables syllablesVs verbose
- else generalProc3G pairwisePermutations p textProcessmentFss textProcessment0 textProcessment1 wrs ks arr gs js vs h qs ysss zzzsss ws toFileMode1 recursiveMode interactiveP jstL0 args0 coeffs coeffsWX args lstW syllables syllablesVs verbose
+ if isPair coeffs then generalProc3G pairwisePermutations p textProcessmentFss textProcessment0 textProcessment1 wrs ks arr gs js vs h qs ysss zzzsss ws {- old arguments follow -} toFileMode1 recursiveMode interactiveP jstL0 args0 coeffs coeffsWX (drop 1 args) lstW syllables syllablesVs verbose g1
+ else generalProc3G pairwisePermutations p textProcessmentFss textProcessment0 textProcessment1 wrs ks arr gs js vs h qs ysss zzzsss ws toFileMode1 recursiveMode interactiveP jstL0 args0 coeffs coeffsWX args lstW syllables syllablesVs verbose g1
 
 -- | Similar to the 'argsToSimplePrepare' function, but takes explicitly the four 'FilePath's for the files
 -- respectively and the last argument the 'String' with all the other specifications. If it is not proper,
@@ -113,15 +115,16 @@
  -> [String]
  -> String -- ^ If empty, the function is just 'generalProc2G' with the arguments starting from the first 'Bool' here.
  -> Int
+ -> (String -> String) -- ^ A function that specifies what 'Char's in the list the first argument makes to be the function sensitive to. Analogue of the @g@ function in the definition: https://hackage.haskell.org/package/phonetic-languages-simplified-examples-array-0.21.0.0/docs/src/Phonetic.Languages.Simplified.Array.Ukrainian.FuncRep2RelatedG2.html#parsey0Choice. Use just small 'Char' if they are letters, do not use \'.\' and spaces.
  -> IO ()
-argsToSimplePrepare4Files pairwisePermutations fileGWrSys controlFile segmentRulesFile concatenationsFileP concatenationsFileA h qs other_args p textProcessmentFss textProcessment0 textProcessment1 = do
+argsToSimplePrepare4Files pairwisePermutations fileGWrSys controlFile segmentRulesFile concatenationsFileP concatenationsFileA h qs other_args p textProcessmentFss textProcessment0 textProcessment1 g1 = do
  let args000 = drop 5 . words $ other_args
      (rcs,args00) = takeAsR [("+r",0)] args000
      recursiveMode = oneA "+r" rcs -- Specifies whether to use the interactive recursive mode
  (gwrsCnts, controlConts, segmentData, concatenationsFileP1, concatenationsFileA1, toFileMode1, interactiveP, jstL0, args0, coeffs, coeffsWX, args, lstW,syllables,syllablesVs,verbose) <- argsProcessment fileGWrSys controlFile segmentRulesFile concatenationsFileP concatenationsFileA args00
  let (wrs, ks, arr, gs, js, vs, ysss, zzzsss, ws) = innerProcessmentSimple gwrsCnts controlConts segmentData concatenationsFileP1 concatenationsFileA1
- if isPair coeffs then generalProc3G pairwisePermutations p textProcessmentFss textProcessment0 textProcessment1 wrs ks arr gs js vs h qs ysss zzzsss ws {- old arguments follow -} toFileMode1 recursiveMode interactiveP jstL0 args0 coeffs coeffsWX (drop 1 args) lstW syllables syllablesVs verbose
- else generalProc3G pairwisePermutations p textProcessmentFss textProcessment0 textProcessment1 wrs ks arr gs js vs h qs ysss zzzsss ws toFileMode1 recursiveMode interactiveP jstL0 args0 coeffs coeffsWX args lstW syllables syllablesVs verbose
+ if isPair coeffs then generalProc3G pairwisePermutations p textProcessmentFss textProcessment0 textProcessment1 wrs ks arr gs js vs h qs ysss zzzsss ws {- old arguments follow -} toFileMode1 recursiveMode interactiveP jstL0 args0 coeffs coeffsWX (drop 1 args) lstW syllables syllablesVs verbose g1
+ else generalProc3G pairwisePermutations p textProcessmentFss textProcessment0 textProcessment1 wrs ks arr gs js vs h qs ysss zzzsss ws toFileMode1 recursiveMode interactiveP jstL0 args0 coeffs coeffsWX args lstW syllables syllablesVs verbose g1
 
 innerProcessmentSimple
   :: String -- ^ Must be a valid 'GWritingSystemPRPLX' specifications 'String' representation only (see the gwrsysExample.txt file in the @phonetic-languages-phonetics-basics@ package as a schema);
diff --git a/Phonetic/Languages/Simplified/Array/General/FuncRep2RelatedG2.hs b/Phonetic/Languages/Simplified/Array/General/FuncRep2RelatedG2.hs
--- a/Phonetic/Languages/Simplified/Array/General/FuncRep2RelatedG2.hs
+++ b/Phonetic/Languages/Simplified/Array/General/FuncRep2RelatedG2.hs
@@ -11,7 +11,8 @@
 
 module Phonetic.Languages.Simplified.Array.General.FuncRep2RelatedG2 where
 
-import CaseBi.Arr (getBFstL')
+import CaseBi.Arr
+import GHC.Arr (listArray)
 import Phonetic.Languages.Basis
 import Phonetic.Languages.Array.General.PropertiesFuncRepG2
 import Phonetic.Languages.Array.General.PropertiesSyllablesG2
@@ -19,9 +20,11 @@
 import Data.Phonetic.Languages.Base
 import Data.Phonetic.Languages.Syllables
 import Phonetic.Languages.EmphasisG
-import Data.Char (isDigit)
+import Data.Char (isDigit, toLower)
 import Data.Maybe (fromJust)
 import Text.Read (readMaybe)
+import Data.List (sort)
+import Phonetic.Languages.Coeffs
 
 -- | Allows to choose the variant of the computations in case of usual processment. The coefficient 1.3 (anyway, it must
 -- be greater than 1.0) )is an empirical and approximate, you can use your own if you like.
@@ -31,13 +34,14 @@
   -- (e. g. allophones). Must be sorted in the ascending order to be used correctly.
   -> CharPhoneticClassification -- ^ The 'Array' 'Int' 'PRS' must be sorted in the ascending order to be used in the module correctly.
   -> SegmentRulesG
-  -> String -- ^ Corresponds to the \'0\' symbol delimiter in the @ukrainian-phonetics-basic-array@ package.
-  -> String -- ^ Corresponds to the \'1\' and \'-\' symbol delimiters in the @ukrainian-phonetics-basic-array@ package.
+  -> String -- ^ Corresponds to the 100 delimiter in the @ukrainian-phonetics-basic-array@ package.
+  -> String -- ^ Corresponds to the 101 delimiter in the @ukrainian-phonetics-basic-array@ package.
   -> (Double -> c)
   -> (Double -> String -> MappingFunctionPL) -- ^ The function that is needed in the 'procRhythmicity23F' function.
  -- Specifies a way how the syllables represented in the phonetic language approach transforms into their durations and
  -- depends on two parameters.
   -> Coeffs2
+  -> String -- ^ A list of 'Char' to which the functions are sensitive to for diversity.
   -> [MappingFunctionPL] -- ^ A list of either 'PhoPaaW'-based or 'SaaW'-based (and not both ones) different functions that specifies the syllables durations in the PhoPaaW or SaaW mode respectively (the former one has been introduced earlier), analogues of the
   -- syllableDurationsD functions from the @ukrainian-phonetics-basics-array@ package. The first one in case of 'PhoPaaW'-based ones must be probably the most
   -- exact one and, therefore, the default one.
@@ -59,13 +63,14 @@
   -- (e. g. allophones). Must be sorted in the ascending order to be used correctly.
   -> CharPhoneticClassification -- ^ The 'Array' 'Int' 'PRS' must be sorted in the ascending order to be used in the module correctly.
   -> SegmentRulesG
-  -> String -- ^ Corresponds to the \'0\' symbol delimiter in the @ukrainian-phonetics-basic-array@ package.
-  -> String -- ^ Corresponds to the \'1\' and \'-\' symbol delimiters in the @ukrainian-phonetics-basic-array@ package.
+  -> String -- ^ Corresponds to the 100 delimiter in the @ukrainian-phonetics-basic-array@ package.
+  -> String -- ^ Corresponds to the 101 delimiter in the @ukrainian-phonetics-basic-array@ package.
   -> (Double -> c)
   -> (Double -> String -> MappingFunctionPL) -- ^ The function that is needed in the 'procRhythmicity23F' function.
  -- Specifies a way how the syllables represented in the phonetic language approach transforms into their durations and
  -- depends on two parameters.
   -> Coeffs2
+  -> String -- ^ A list of 'Char' to which the functions are sensitive to for diversity.
   -> [MappingFunctionPL] -- ^ A list of either 'PhoPaaW'-based or 'SaaW'-based (and not both ones) different functions that specifies the syllables durations in the PhoPaaW or SaaW mode respectively (the former one has been introduced earlier), analogues of the
   -- syllableDurationsD functions from the @ukrainian-phonetics-basics-array@ package. The first one in case of 'PhoPaaW'-based ones must be probably the most
   -- exact one and, therefore, the default one.
@@ -81,8 +86,8 @@
  -- \"u\", \"v\", or some other letters. For more information, please, refer to the 'Phonetic.Languages.Array.Ukrainian.PropertiesSyllablesG2.rhythmicity'.
   -> String -- ^ The starting 'String' which creates the order for the 'FSLG' representation
   -> FuncRep2 ReadyForConstructionPL Double c
-chooseMaxG k wrs ks arr gs us vs g h coeffs xs choice bbs
- | any (== 'G') choice = chooseMaxG k wrs ks arr gs us vs g h coeffs xs (filter (/= 'G') choice) bbs
+chooseMaxG k wrs ks arr gs us vs g h coeffs sels xs choice bbs
+ | any (== 'G') choice = chooseMaxG k wrs ks arr gs us vs g h coeffs sels xs (filter (/= 'G') choice) bbs
  | any (=='a') choice = procRhythmicity23F k g (\_ _ -> if null (filter isDigit choice) then (xs !! 0) else (xs !! ((\z -> if  z == -1 then 0 else z) $ 
        fromJust (readMaybe [last . filter isDigit $ choice]::Maybe Int) - 1))) (filter (/='a') choice) coeffs wrs ks arr gs us vs bbs
  | take 1 choice `elem` ["c","C","N"] || (take 1 choice >= "A" && take 1 choice <= "F") ||
@@ -162,23 +167,23 @@
      "w21","w22","w23","w24","w31","w32","w33","w34","x01","x02","x03","x04","x11","x12","x13","x14",
      "x21","x22","x23","x24","x31","x32","x33","x34"] . replicate 2000 $ True) choice =
         procRhythmicity23F k g h choice coeffs wrs ks arr gs us vs bbs
- | otherwise = getBFstL' (procB2F wrs ks arr gs us vs g (xs !! 0) coeffs)
-     [("y",procB2F wrs ks arr gs us vs g (xs !! 0) coeffs),
-      ("y0",procDiverse2F wrs (' ':us `mappend` vs) g),
-      ("y2",procB2F wrs ks arr gs us vs g (xs !! 1) coeffs),
-      ("y3",procB2F wrs ks arr gs us vs g (xs !! 2) coeffs),
-      ("y4",procB2F wrs ks arr gs us vs g (xs !! 3) coeffs),
-      ("yy",procB2InvF wrs ks arr gs us vs g (xs !! 0) coeffs),
-      ("yy2",procB2InvF wrs ks arr gs us vs g (xs !! 1) coeffs),
-      ("yy3",procB2InvF wrs ks arr gs us vs g (xs !! 2) coeffs),
-      ("z",procB2FF wrs ks arr gs us vs k g (xs !! 0) coeffs),
-      ("z2",procB2FF wrs ks arr gs us vs k g (xs !! 1) coeffs),
-      ("z3",procB2FF wrs ks arr gs us vs k g (xs !! 2) coeffs),
-      ("z4",procB2FF wrs ks arr gs us vs k g (xs !! 3) coeffs),
-      ("zz",procB2InvFF wrs ks arr gs us vs k g (xs !! 0) coeffs),
-      ("zz2",procB2InvFF wrs ks arr gs us vs k g (xs !! 1) coeffs),
-      ("zz3",procB2InvFF wrs ks arr gs us vs k g (xs !! 2) coeffs),
-      ("zz4", procB2InvFF wrs ks arr gs us vs k g (xs !! 3) coeffs)] choice
+ | otherwise = getBFstLSorted' (procB2F wrs ks arr gs us vs g (xs !! 0) coeffs sels)
+     [("y",procB2F wrs ks arr gs us vs g (xs !! 0) coeffs sels),
+      ("y0",procDiverse2F wrs (' ':us `mappend` vs) g sels),
+      ("y2",procB2F wrs ks arr gs us vs g (xs !! 1) coeffs sels),
+      ("y3",procB2F wrs ks arr gs us vs g (xs !! 2) coeffs sels),
+      ("y4",procB2F wrs ks arr gs us vs g (xs !! 3) coeffs sels),
+      ("yy",procB2InvF wrs ks arr gs us vs g (xs !! 0) coeffs sels),
+      ("yy2",procB2InvF wrs ks arr gs us vs g (xs !! 1) coeffs sels),
+      ("yy3",procB2InvF wrs ks arr gs us vs g (xs !! 2) coeffs sels),
+      ("z",procB2FF wrs ks arr gs us vs k g (xs !! 0) coeffs sels),
+      ("z2",procB2FF wrs ks arr gs us vs k g (xs !! 1) coeffs sels),
+      ("z3",procB2FF wrs ks arr gs us vs k g (xs !! 2) coeffs sels),
+      ("z4",procB2FF wrs ks arr gs us vs k g (xs !! 3) coeffs sels),
+      ("zz",procB2InvFF wrs ks arr gs us vs k g (xs !! 0) coeffs sels),
+      ("zz2",procB2InvFF wrs ks arr gs us vs k g (xs !! 1) coeffs sels),
+      ("zz3",procB2InvFF wrs ks arr gs us vs k g (xs !! 2) coeffs sels),
+      ("zz4", procB2InvFF wrs ks arr gs us vs k g (xs !! 3) coeffs sels)] . takeWhile (/= '.') $ choice
 
 -- | Allows to choose precision in the Numeric.showFDouble function being given a choice parameter.
 precChoice
@@ -197,4 +202,17 @@
  | any (\t -> t =='G' || t == 'a') choice = precChoice . filter (\t -> t/='G' && t /= 'a') $ choice
  | otherwise = getBFstL' (Just 4) [("02y",Just 0),("02z",Just 0),("03y",Just 0),("03z",Just 0),("04y",Just 0),
   ("04z",Just 0),("0y",Just 0),("0z",Just 0),("y",Just 0),("y0",Just 0),("y2",Just 0),("y3",Just 0), ("y4",Just 0),
-    ("z",Just 0),("z0",Just 0),("z2",Just 0),("z3",Just 0), ("z4",Just 0)] choice
+    ("z",Just 0),("z0",Just 0),("z2",Just 0),("z3",Just 0), ("z4",Just 0)] . takeWhile (/='.') $ choice
+
+parsey0Choice 
+  :: (String -> String) -- ^ A function that specifies what 'Char's in the list the first argument makes to be the function sensitive to. Analogue of the @g@ function in the definition: https://hackage.haskell.org/package/phonetic-languages-simplified-examples-array-0.21.0.0/docs/src/Phonetic.Languages.Simplified.Array.Ukrainian.FuncRep2RelatedG2.html#parsey0Choice. Use just small 'Char' if they are letters, do not use \'.\' and spaces.
+  -> String 
+  -> String
+parsey0Choice g xs 
+  | getBFst' (False, listArray (0,24) . zip ["02y","02z","03y","03z","04y","04z","0y","0z","y","y0","y2","y3","y4","yy","yy2","yy3","yy4","z","z2","z3","z4","zz","zz2","zz3","zz4"] . replicate 25 $ True) ts = f . sort . concatMap g . words . map (\c -> if c  == '.' then ' ' else toLower c) $ us
+  | otherwise = []
+    where (ts,us) = break (== '.') . filter (\c -> c /= 'H' && c /= 'G') $ xs
+          f (x:ts@(y:xs)) 
+           | x == y = f ts
+           | otherwise = x:f ts
+          f xs = xs
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -81,29 +81,42 @@
 approach and are intended for 4 elements in the rhythmic groups. For more information, please, refer to the
 section 'WX argument' in the Ukrainian instruction:
 
-https://oleksandrzhabenko.github.io/uk/rhythmicity/InstructionUkr.20.1.pdf
+The short (possibly) instruction how to use the programs of the package
+phonetic-languages-simplified-examples-array in Ukrainian is here:
 
+https://oleksandrzhabenko.github.io/uk/rhythmicity/PhLADiPreLiO.Ukr.21.pdf
+
+or: https://oleksandrzhabenko.github.io/uk/rhythmicity/PhLADiPreLiO.Ukr.21.html
+
+in html format,
+
 or here:
 
-(try https://web.archive.org/web/20220822182842/https://oleksandrzhabenko.github.io/uk/rhythmicity/InstructionUkr.20.1.pdf
+(try https://web.archive.org/web/20220913192723/https://oleksandrzhabenko.github.io/uk/rhythmicity/PhLADiPreLiO.Ukr.21.pdf
 
-or https://web.archive.org/web/20220822182940/https://oleksandrzhabenko.github.io/uk/rhythmicity/InstructionUkr.20.1.html
+or https://web.archive.org/web/20220913192509/https://oleksandrzhabenko.github.io/uk/rhythmicity/PhLADiPreLiO.Ukr.21.html
 
 in html format
-)
+).
 
 The instruction in English is here:
 
-https://oleksandrzhabenko.github.io/uk/rhythmicity/InstructionEng.20.1.pdf
+https://oleksandrzhabenko.github.io/uk/rhythmicity/PhLADiPreLiO.Eng.21.pdf
 
+or:
+
+https://oleksandrzhabenko.github.io/uk/rhythmicity/PhLADiPreLiO.Eng.21.html
+
+in html format,
+
 or here:
 
-(try https://web.archive.org/web/20220822183103/https://oleksandrzhabenko.github.io/uk/rhythmicity/InstructionEng.20.1.pdf
+(try https://web.archive.org/web/20220913192921/https://oleksandrzhabenko.github.io/uk/rhythmicity/PhLADiPreLiO.Eng.21.pdf
 
-or https://web.archive.org/web/20220822183226/https://oleksandrzhabenko.github.io/uk/rhythmicity/InstructionEng.20.1.html
+or https://web.archive.org/web/20220913193012/https://oleksandrzhabenko.github.io/uk/rhythmicity/PhLADiPreLiO.Eng.21.html
 
 in html format
-)
+).
 
 There are also some additional information there about the changes in the 0.6.0.0 version.
 
diff --git a/phonetic-languages-simplified-generalized-examples-array.cabal b/phonetic-languages-simplified-generalized-examples-array.cabal
--- a/phonetic-languages-simplified-generalized-examples-array.cabal
+++ b/phonetic-languages-simplified-generalized-examples-array.cabal
@@ -3,7 +3,7 @@
 -- http://haskell.org/cabal/users-guide/
 
 name:                phonetic-languages-simplified-generalized-examples-array
-version:             0.18.2.0
+version:             0.19.0.0
 synopsis:            Helps to create texts with the given phonetic properties (e. g. poetic).
 description:         Is rewritten from the modules of the @phonetic-languages-simplified-examples-array@ package. Can be used not only for Ukrainian, but also for other languages. To present the created text you can use e. g. html-presentation-text package: https://hackage.haskell.org/package/html-presentation-text .
 homepage:            https://hackage.haskell.org/package/phonetic-languages-simplified-generalized-examples-array
@@ -21,6 +21,6 @@
   exposed-modules:     Phonetic.Languages.General.Lines, Phonetic.Languages.General.Parsing, Phonetic.Languages.General.Simple, Phonetic.Languages.General.GetTextualInfo, Phonetic.Languages.Simplified.Array.General.FuncRep2RelatedG2, Phonetic.Languages.General.Simple.Parsing, Phonetic.Languages.General.Lines.Parsing, Phonetic.Languages.General.GetInfo.Parsing, EspeakNG_IPA
   -- other-modules:
   other-extensions:    BangPatterns, FlexibleContexts
-  build-depends:       base >=4.8 && <5,   phonetic-languages-simplified-generalized-examples-common ==0.5.0.0,   subG ==0.5.3.0,   phonetic-languages-simplified-generalized-properties-array ==0.11.0.0,   phonetic-languages-basis ==0.1.1.0, phonetic-languages-simplified-base ==0.6.0.0,   phonetic-languages-permutations-array ==0.3.4.0,   phonetic-languages-filters-array ==0.5.0.0,   phonetic-languages-phonetics-basics ==0.9.0.0,   phonetic-languages-constraints-array ==0.1.2.0,   parallel >=3.2.0.6 && <4,   phonetic-languages-plus ==0.6.0.0,   mmsyn2-array ==0.3.0.0,   heaps >=0.3.6.1 && <1,   mmsyn3 ==0.1.6.0,   process >= 1.6.2 && <2,   string-interpreter ==0.6.0.0,   cli-arguments ==0.6.0.0, foldable-ix ==0.2.1.0
+  build-depends:       base >=4.8 && <5,   phonetic-languages-simplified-generalized-examples-common ==0.5.1.0,   subG ==0.5.3.0,   phonetic-languages-simplified-generalized-properties-array ==0.12.0.0,   phonetic-languages-basis ==0.2.0.0, phonetic-languages-simplified-base ==0.6.1.0,   phonetic-languages-permutations-array ==0.3.4.0,   phonetic-languages-filters-array ==0.5.0.0,   phonetic-languages-phonetics-basics ==0.9.1.0,   phonetic-languages-constraints-array ==0.1.2.0,   parallel >=3.2.0.6 && <4,   phonetic-languages-plus ==0.6.0.0,   mmsyn2-array ==0.3.0.0,   heaps >=0.3.6.1 && <1,   mmsyn3 ==0.1.6.0,   process >= 1.6.2 && <2,   string-interpreter ==0.7.0.0,   cli-arguments ==0.6.0.0, foldable-ix ==0.2.1.0
   -- hs-source-dirs:
   default-language:    Haskell2010
