diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -32,3 +32,9 @@
 
 * Fifth version. Switched to the Double instead of Float whenever possible. Some dependencies changes for this.
 
+## 0.6.0.0 -- 2020-12-07
+
+* Sixth version. Added multiproperties mode for propertiesTextG2 executable. Added constraint of ++B to it, too. Extended
+up to 5 possible properties for the lineVariantsG2 executable. Added 'whitelines' modes. Some code and documentation
+improvements. Added a new module Phonetic.Languages.Simplified.Lists.SimpleConstraints.
+
diff --git a/GetInfo/Main.hs b/GetInfo/Main.hs
--- a/GetInfo/Main.hs
+++ b/GetInfo/Main.hs
@@ -19,7 +19,7 @@
 module Main where
 
 
-import Data.SubG
+import Data.SubG hiding (takeWhile,dropWhile)
 import System.IO
 import Control.Concurrent
 import Control.Exception
@@ -34,19 +34,24 @@
 import Numeric (showFFloat)
 import Languages.UniquenessPeriods.Vector.Filters
 import Data.Char (isAlpha)
-import Data.Statistics.RulesIntervals
+import Data.Statistics.RulesIntervalsPlus
 import Data.MinMax.Preconditions
 import Phonetic.Languages.Lists.Ukrainian.PropertiesSyllablesG2
 import Phonetic.Languages.Simplified.StrictVG
 import Phonetic.Languages.Permutations
 import Phonetic.Languages.Simplified.DataG
 import Phonetic.Languages.Simplified.Lists.Ukrainian.FuncRep2RelatedG2
-
+import Languages.UniquenessPeriods.Vector.Constraints.Encoded
+import Phonetic.Languages.Simplified.Lists.SimpleConstraints
 
 main :: IO ()
 main = do
- args0 <- getArgs
- let args = filter (\xs -> all (/= ':') xs && all (/= '@') xs) args0
+ args000 <- getArgs
+ let !args00 = filter (/= "++B") args000
+     !lstW = any (== "++B") args000
+     !args0 = takeWhile (/= "+M") args00 `mappend` drop 1 (dropWhile (/= "-M") args00)
+     !multiples = drop 1 . dropWhile (/= "+M") . takeWhile (/= "-M") $ args00 -- Arguments for multiple metrices mode
+     !args = filter (\xs -> all (/= ':') xs && all (/= '@') xs) args0
      !coeffs = readCF . concat . take 1 $ args -- The first command line argument. If not sure, just enter \"1_\".
      !lInes = filter (any (== ':')) args0
      !numbersJustPrint =  filter (== "@n") args0
@@ -57,7 +62,7 @@
        !printLine = 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 print the current line within the information
        !toOneLine = 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 convert the text into one single line before applying to it the processment (it can be more conceptually consistent in such a case)
        !choice = concat . drop 5 . take 6 $ args -- The sixth command line argument that controls what properties are used.
-   generalProc lInes coeffs file gzS printLine toOneLine choice
+   generalProc lstW multiples lInes coeffs file gzS printLine toOneLine choice
   else do
    contents <- readFile file
    fLinesIO contents
@@ -68,21 +73,21 @@
        !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 lInes coeffs file gzS printLine toOneLine choice
+   generalProc lstW multiples lInes coeffs file gzS printLine toOneLine choice
   else do
    contents <- readFile file
    fLinesIO contents
 
-generalProc :: [String] -> Coeffs2 -> FilePath -> String -> Int -> Int -> String -> IO ()
-generalProc lInes coeffs file gzS printLine toOneLine choice
+generalProc :: Bool -> [String] -> [String] -> Coeffs2 -> FilePath -> String -> Int -> Int -> String -> IO ()
+generalProc lstW multiples2 lInes coeffs file gzS printLine toOneLine choice
  | null lInes = do
     contents <- readFile file
     let !flines = fLines toOneLine contents
-    getData3 coeffs (getIntervalsN gzS flines) printLine choice flines
+    getData3 lstW coeffs (getIntervalsNS lstW gzS flines) printLine choice multiples2 flines
  | otherwise = do
     contents <- readFile file
-    let flines = fLines toOneLine . unlines . linesFromArgsG lInes . fLines 0 $ contents
-    getData3 coeffs (getIntervalsN gzS flines) printLine choice flines
+    let !flines = fLines toOneLine . unlines . linesFromArgsG lInes . fLines 0 $ contents
+    getData3 lstW coeffs (getIntervalsNS lstW gzS flines) printLine choice multiples2 flines
 
 linesFromArgs1 :: Int -> String -> [String] -> [String]
 linesFromArgs1 n xs yss =
@@ -93,42 +98,52 @@
 linesFromArgsG :: [String] -> [String] -> [String]
 linesFromArgsG xss yss = let n = length yss in concatMap (\ts -> linesFromArgs1 n ts yss) xss
 
-getIntervalsN :: String -> [String] -> Int
-getIntervalsN xs ys
-  | xs == "s" = sturgesH (length ys)
-  | xs == "l" = levynskyiMod (length ys)
-  | otherwise = fromMaybe 9 (readMaybe xs::(Maybe Int))
-{-# INLINE getIntervalsN #-}
-
-getData3 :: Coeffs2 -> Int -> Int -> String -> [String] -> IO ()
-getData3 coeffs gz printLine choice zs = let !permsV4 = genPermutationsVL in mapM_ (process1Line coeffs gz printLine choice permsV4) zs
+getData3 :: Bool -> Coeffs2 -> Int -> Int -> String -> [String] -> [String] -> IO ()
+getData3 lstW coeffs gz printLine choice multiples3 zss = let !permsV4 = genPermutationsVL in putStrLn (replicate (length multiples3 + 1) '\t' `mappend` show gz) >> mapM_ (process1Line lstW coeffs gz printLine choice multiples3 permsV4) zss
 
-process1Line :: Coeffs2 -> Int -> Int -> String -> VB.Vector [VB.Vector Int] -> String -> IO ()
-process1Line coeffs gz printLine choice !permsV5 v = bracket (do
- myThread <- forkIO (do
-   let !v2 = words v
-       !l2 = (length v2) - 2
-       ((!minE,!maxE),!data2)
-         | l2 >= 0 = runEval (parTuple2 rpar rpar (minMax11C . map (toTransPropertiesF' (chooseMax id coeffs choice)) .
-              uniquenessVariants2GNBL ' ' id id id (VB.unsafeIndex permsV5 l2) $ v2, toTransPropertiesF' (chooseMax id coeffs choice) . unwords . subG " 01-" $ v))
-         | otherwise = let !mono = toTransPropertiesF' (chooseMax id coeffs choice) v in ((mono,mono),mono)
-       (!wordsN,!intervalN)
-         | l2 >= 0 = runEval (parTuple2 rpar rpar (l2 + 2, intervalNRealFrac minE maxE gz data2))
-         | otherwise = (1,intervalNRealFrac data2 data2 gz data2)
-       !ratio
-        | l2 >= 0 = if maxE == 0.0 then 0.0 else 2.0 * data2 / (minE + maxE)
-        | otherwise = 1.0 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 / minE) $ "\t"
-          hPutStr stdout . showFFloat (Just 4) (maxE / data2) $ "\t"
-          hPutStr stdout . showFFloat (Just 8) ratio $ "\t"
-          hPutStr stdout ('\t':show (wordsN::Int))
-          hPutStr stdout ('\t':show (intervalN::Int))
-          hPutStrLn stdout (if printLine == 1 then '\t':v else ""))
- return myThread) (killThread) (\_ -> putStr "")
+process1Line :: Bool -> Coeffs2 -> Int -> Int -> String -> [String] -> VB.Vector [VB.Vector Int] -> String -> IO ()
+process1Line lstW coeffs gz printLine choice multiples4 !permsV50 v
+ | null multiples4 = bracket (do {
+    myThread <- forkIO (do
+     let !v2 = words v
+         !l2 = length v2 - 2
+     if l2 >= (if lstW then 1 else 0) then do
+      let !permsV5 = decodeConstraint1 (fromMaybe (E 1) . readMaybeECG (l2 + 1) . showB (l2 + 2) $ lstW) .
+            VB.unsafeIndex permsV50 $ l2
+          ((!minE,!maxE),!data2) = runEval (parTuple2 rpar rpar (minMax11C . map (toTransPropertiesF' (chooseMax id coeffs choice )) .
+                uniquenessVariants2GNBL ' ' id id id permsV5 $ v2, toTransPropertiesF' (chooseMax  id coeffs choice) . unwords . subG " 01-" $ v))
+          (!wordsN,!intervalN) = (l2 + 2, intervalNRealFrac minE maxE gz data2)
+          !ratio = if maxE == 0.0 then 0.0 else 2.0 * data2 / (minE + maxE)
+      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 / minE) $ "\t"
+      hPutStr stdout . showFFloat (Just 4) (maxE / data2) $ "\t"
+      hPutStr stdout . showFFloat (Just 8) ratio $ "\t"
+      hPutStr stdout ('\t':show (wordsN::Int))
+      hPutStr stdout ('\t':show (intervalN::Int))
+      hPutStrLn stdout (if printLine == 1 then '\t':v else "")
+     else putStrLn (replicate (length multiples4) '\t' ++ if printLine == 1 then '\t':v else ""))
+   ; return myThread }) (killThread) (\_ -> putStr "")
+ | otherwise = bracket (do {
+   myThread <- forkIO (do
+    let !v2 = words v
+        !l2 = length v2 - 2
+    if l2 >= (if lstW then 1 else 0) then do
+     let !permsV5 = decodeConstraint1 (fromMaybe (E 1) . readMaybeECG (l2 + 1) . showB (l2 + 2) $ lstW) .
+            VB.unsafeIndex permsV50 $ l2
+         rs = parMap rpar (\choiceMMs -> (minMax11C .
+           map (toTransPropertiesF' (chooseMax id coeffs choiceMMs)) .
+             uniquenessVariants2GNBL ' ' id id id permsV5 $ v2,
+               toTransPropertiesF' (chooseMax  id coeffs choiceMMs) . unwords . subG " 01-" $ v,gz)) multiples4
+         (!wordsN,!intervalNs) = (l2 + 2, map (\((!x,!y),!z,!t) -> intervalNRealFrac x y t z) rs)
+           in do
+            hPutStr stdout (show (wordsN::Int))
+            mapM_ (\i -> hPutStr stdout ('\t':show (i::Int))) intervalNs
+            hPutStrLn stdout (if printLine == 1 then '\t':v else "")
+    else putStrLn (replicate (length multiples4) '\t' ++ if printLine == 1 then '\t':v else ""))
+  ; return myThread }) (killThread) (\_ -> putStr "")
 
 fLines :: Int -> String -> [String]
 fLines !toOneLine ys =
diff --git a/Phonetic/Languages/Simplified/Lists/SimpleConstraints.hs b/Phonetic/Languages/Simplified/Lists/SimpleConstraints.hs
new file mode 100644
--- /dev/null
+++ b/Phonetic/Languages/Simplified/Lists/SimpleConstraints.hs
@@ -0,0 +1,17 @@
+-- |
+-- Module      :  Phonetic.Languages.Simplified.Lists.SimpleConstraints
+-- Copyright   :  (c) OleksandrZhabenko 2020
+-- License     :  MIT
+-- Stability   :  Experimental
+-- Maintainer  :  olexandr543@yahoo.com
+--
+-- Some code shared for different Main modules.
+
+module Phonetic.Languages.Simplified.Lists.SimpleConstraints where
+
+import Data.Monoid
+
+showB :: Int -> Bool -> String
+showB n bool
+ | n >= 2 && bool == True = 'B':show (n - 1) `mappend` concatMap show [0..n - 2]
+ | otherwise = ""
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,5 +1,4 @@
 The short (possibly) instruction how to use the programs of the package phonetic-languages-simplified-lists-examples
 in Ukrainian is here:
 
-https://web.archive.org/web/20201203144040/https://oleksandrzhabenko.github.io/uk/%D0%9A%D0%BE%D1%80%D0%BE%D1%82%D0%BA%D0%B0_%D1%96%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%86%D1%96%D1%8F_%D1%89%D0%BE%D0%B4%D0%BE_%D0%BA%D0%BE%D1%80%D0%B8%D1%81%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D1%83_phonetic-languages-simplified-lists-examples-0.4.0.0.pdf
-
+https://web.archive.org/web/20201207224536/https://oleksandrzhabenko.github.io/uk/%D0%9A%D0%BE%D1%80%D0%BE%D1%82%D0%BA%D0%B0_%D1%96%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%86%D1%96%D1%8F_%D1%89%D0%BE%D0%B4%D0%BE_%D0%BA%D0%BE%D1%80%D0%B8%D1%81%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%B0%D0%BC%D0%B8_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D1%83_phonetic-languages-simplified-lists-examples-0.6.0.0.pdf
diff --git a/Simple/Main.hs b/Simple/Main.hs
--- a/Simple/Main.hs
+++ b/Simple/Main.hs
@@ -6,7 +6,6 @@
 -- 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 #-}
 
@@ -33,6 +32,7 @@
 import Data.MinMax.Preconditions
 import Text.Read (readMaybe)
 import Phonetic.Languages.Simplified.Lists.DeEnCoding
+import Phonetic.Languages.Simplified.Lists.SimpleConstraints
 
 
 -- | Prints the rearrangements with the \"property\" information for the Ukrainian language text. The first command line argument must be a
@@ -41,7 +41,7 @@
 -- 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\", or \"02y\", or \"y2\", or \"03y\", or \"yy2\", or \"y3\", or some other variant and specifies, which property or properties is or are evaluated.
--- The rest of the command line arguments is the Ukrainian text. Besides, you can use multiple metrices (no more than 4 different ones) together by
+-- The rest of the command line arguments is the Ukrainian text. Besides, you can use multiple metrices (no more than 5 different ones) together by
 -- using \"+M\" ... \"-M\" command line arguments.
 --
 -- You can specify constraints according to the 'decodeLConstraints' function between +A and -A command line arguments. If so, the program will
@@ -63,22 +63,17 @@
  if isPair coeffs then generalProc2 toFileMode1 interactiveP jstL0 args0 coeffs (drop 1 args) lstW
  else generalProc2 toFileMode1 interactiveP jstL0 args0 coeffs args lstW
 
-showB :: Int -> Bool -> String
-showB n bool
- | n >= 2 && bool == True = 'B':show (n - 1) `mappend` concatMap show [0..n - 2]
- | otherwise = ""
-
-forMultipleMetrices :: [String] -> [(String,[String])]
-forMultipleMetrices (xs:xss)
- | any isAlpha xs = (xs,yss):forMultipleMetrices zss
+forMultiplePropertiesF :: [String] -> [(String,[String])]
+forMultiplePropertiesF (xs:xss)
+ | any isAlpha xs = (xs,yss):forMultiplePropertiesF zss
  | otherwise = []
      where l = length . takeWhile (all isDigit) $ xss
            (yss,zss) = splitAt l xss
-forMultipleMetrices _ = []
+forMultiplePropertiesF _ = []
 
 generalProc2 :: FilePath -> Bool -> Bool -> [String] -> Coeffs2 -> [String] -> Bool -> IO ()
 generalProc2 toFile1 interactive jstL0 args0 coeffs args lstW2 = do
-  let !argMss = take 4 . filter (not . null) . forMultipleMetrices . drop 1 . dropWhile (/= "+M") . takeWhile (/= "-M") $ args0
+  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
        !xs = concat . take 1 . fLines . unwords . drop 1 $ textualArgs
@@ -131,8 +126,8 @@
      mapM_ putStrLn datas
      putStrLn ""
      putStrLn "Please, specify the variant which you would like to become the resulting string by its number. "
-     numb <- getLine
-     let !lineRes = concat . filter ((numb `mappend` "\t")`L.isPrefixOf`) $ datas
+     number <- getLine
+     let !lineRes = concat . filter ((number `mappend` "\t")`L.isPrefixOf`) $ datas
      (\xs -> if null ys then putStrLn xs else putStrLn xs >> appendFile ys (xs `mappend` newLineEnding)) . drop 1 . dropWhile (/= '\t') $ lineRes
 
 printWarning :: String -> IO String
@@ -156,28 +151,20 @@
     return . fst . maximumGroupsClassificationR arg0 . map (toResultR frep2) $ variants1
 
 generalProcMMs :: Bool -> FilePath -> Coeffs2 -> [(VB.Vector Int,Int,Int,String)] -> [VB.Vector Int] -> [String] -> IO ()
-generalProcMMs interactiveMM file coeffs rs perms subs
- | null rs = putStrLn "No data has been specified to control the computation process. "
- | otherwise = do
-    genVariants <- mapM (generalProcMs coeffs perms subs) rs
-    let !lineVs = map (map line) genVariants
-        !l3 = length lineVs
-    case l3 of
-     4 -> finalProc interactiveMM file id ll
-       where [!l10,!l20,!l30,!l40] = lineVs
-             !l12 = intersectInterResults l10 l20
-             !l34 = intersectInterResults l30 l40
-             !ll = intersectInterResults l12 l34
-     3 -> finalProc interactiveMM file id ll
-       where [!l10,!l20,!l30] = lineVs
-             !l12 = intersectInterResults l10 l20
-             !ll = intersectInterResults l12 l30
-     2 -> finalProc interactiveMM file id ll
-       where [!l10,!l20] = lineVs
-             !ll = intersectInterResults l10 l20
-     _ -> putStrLn "You have specified just one variant of the metrices. " >> do
-           temp <- generalProcMs coeffs perms subs (head rs)
-           finalProc interactiveMM file line temp
+generalProcMMs interactiveMM file coeffs rs perms subs =
+ case length rs of
+  0 -> putStrLn "No data has been specified to control the computation process. "
+  1 -> putStrLn "You have specified just one variant of the metrices. " >> do
+        temp <- generalProcMs coeffs perms subs (head rs)
+        finalProc interactiveMM file line temp
+  _ -> do
+         genVariants <- mapM (generalProcMs coeffs perms subs) rs
+         finalProc interactiveMM file id . foldlI . map (map line) $ genVariants
+
+foldlI :: [[String]] -> [String]
+foldlI (xs:ys:xss) = foldlI (intersectInterResults xs ys : xss)
+foldlI (xs:_) = xs
+foldlI _ = []
 
 finalProc :: Bool -> FilePath -> (a -> String) -> [a] -> IO ()
 finalProc bool ys f xss = if bool then interactivePrintResult f ys xss else mapM_ (putStrLn . f) xss
diff --git a/phonetic-languages-simplified-lists-examples.cabal b/phonetic-languages-simplified-lists-examples.cabal
--- a/phonetic-languages-simplified-lists-examples.cabal
+++ b/phonetic-languages-simplified-lists-examples.cabal
@@ -1,8 +1,8 @@
--- Initial phonetic-languages-examples.cabal generated by cabal init.  For
+-- Initial phonetic-languages-simplified-lists-examples.cabal generated by cabal init.  For
 -- further documentation, see http://haskell.org/cabal/users-guide/
 
 name:                phonetic-languages-simplified-lists-examples
-version:             0.5.0.0
+version:             0.6.0.0
 synopsis:            Simplified and somewhat optimized version of the phonetic-languages-examples.
 description:         Is intended to use more functionality of lists and subG package.
 homepage:            https://hackage.haskell.org/package/phonetic-languages-simplified-lists-examples
@@ -17,7 +17,7 @@
 cabal-version:       >=1.10
 
 library
-  exposed-modules:     Phonetic.Languages.Simplified.Lists.Ukrainian.FuncRep2RelatedG2, Phonetic.Languages.Simplified.Lists.DeEnCoding
+  exposed-modules:     Phonetic.Languages.Simplified.Lists.Ukrainian.FuncRep2RelatedG2, Phonetic.Languages.Simplified.Lists.DeEnCoding, Phonetic.Languages.Simplified.Lists.SimpleConstraints
   -- other-modules:
   other-extensions:    BangPatterns
   build-depends:       base >=4.8 && <4.15, phonetic-languages-simplified-common >=0.4 && <1, phonetic-languages-simplified-properties-lists-double >=0.1 && <1, vector >=0.11 && < 0.14, mmsyn2 >=0.3 && <1, phonetic-languages-constraints >=0.4 && <1, heaps >= 0.3.6.1 && <1
@@ -26,27 +26,27 @@
 
 executable lineVariantsG2
   main-is:             Main.hs
-  other-modules:       Phonetic.Languages.Simplified.Lists.Ukrainian.FuncRep2RelatedG2, Phonetic.Languages.Simplified.Lists.DeEnCoding
+  other-modules:       Phonetic.Languages.Simplified.Lists.Ukrainian.FuncRep2RelatedG2, Phonetic.Languages.Simplified.Lists.DeEnCoding, Phonetic.Languages.Simplified.Lists.SimpleConstraints
   other-extensions:    BangPatterns
-  build-depends:       base >=4.8 && <4.15, ukrainian-phonetics-basic >=0.4.1 && <1, vector >=0.11 && <0.14, phonetic-languages-simplified-common >=0.4 && <1, phonetic-languages-simplified-properties-lists-double >=0.1 && <1, print-info >=0.1.3 && <1, phonetic-languages-ukrainian >=0.3 && <1, uniqueness-periods-vector-filters >=0.3 && <1, vector >=0.11 && <0.14, phonetic-languages-plus >=0.1.1 && <1, subG >=0.4 && < 1, mmsyn2 >= 0.3 && <1, phonetic-languages-constraints >=0.4 && <1, phonetic-languages-permutations >= 0.2 && <1, heaps >= 0.3.6.1 && <1
+  build-depends:       base >=4.8 && <4.15, ukrainian-phonetics-basic >=0.4.1 && <1, vector >=0.11 && <0.14, phonetic-languages-simplified-common >=0.4 && <1, phonetic-languages-simplified-properties-lists-double >=0.1 && <1, print-info >=0.1.3 && <1, phonetic-languages-ukrainian >=0.3 && <1, uniqueness-periods-vector-filters >=0.3 && <1, vector >=0.11 && <0.14, phonetic-languages-plus >=0.2 && <1, subG >=0.4 && < 1, mmsyn2 >= 0.3 && <1, phonetic-languages-constraints >=0.4 && <1, phonetic-languages-permutations >= 0.2 && <1, heaps >= 0.3.6.1 && <1
   ghc-options:         -threaded -rtsopts
   hs-source-dirs:      ., Simple
   default-language:    Haskell2010
 
 executable rewritePoemG2
   main-is:             Main.hs
-  other-modules:       Phonetic.Languages.Simplified.Lists.Ukrainian.FuncRep2RelatedG2, Phonetic.Languages.Simplified.Lists.DeEnCoding
+  other-modules:       Phonetic.Languages.Simplified.Lists.Ukrainian.FuncRep2RelatedG2, Phonetic.Languages.Simplified.Lists.DeEnCoding, Phonetic.Languages.Simplified.Lists.SimpleConstraints
   other-extensions:    BangPatterns
-  build-depends:       base >=4.8 && <4.15, ukrainian-phonetics-basic >=0.4.1 && <1, vector >=0.11 && <0.14, phonetic-languages-simplified-common >=0.4 && <1, phonetic-languages-simplified-properties-lists-double >=0.1 && <1, print-info >=0.1.3 && <1, phonetic-languages-ukrainian >=0.3 && <1, uniqueness-periods-vector-filters >=0.3 && <1, vector >=0.11 && <0.14, phonetic-languages-plus >=0.1.1 && <1, subG >= 0.4 && < 1, phonetic-languages-rhythmicity >=0.1.2 && <1, mmsyn2 >=0.3 && <1, phonetic-languages-constraints >=0.4 && <1, phonetic-languages-permutations >= 0.2 && <1, heaps >= 0.3.6.1 && <1
+  build-depends:       base >=4.8 && <4.15, ukrainian-phonetics-basic >=0.4.1 && <1, vector >=0.11 && <0.14, phonetic-languages-simplified-common >=0.4 && <1, phonetic-languages-simplified-properties-lists-double >=0.1 && <1, print-info >=0.1.3 && <1, phonetic-languages-ukrainian >=0.3 && <1, uniqueness-periods-vector-filters >=0.3 && <1, vector >=0.11 && <0.14, phonetic-languages-plus >=0.2 && <1, subG >= 0.4 && < 1, phonetic-languages-rhythmicity >=0.1.2 && <1, mmsyn2 >=0.3 && <1, phonetic-languages-constraints >=0.4 && <1, phonetic-languages-permutations >= 0.2 && <1, heaps >= 0.3.6.1 && <1
   ghc-options:         -threaded -rtsopts
   hs-source-dirs:      ., Lines
   default-language:    Haskell2010
 
 executable propertiesTextG2
   main-is:             Main.hs
-  other-modules:       Phonetic.Languages.Simplified.Lists.Ukrainian.FuncRep2RelatedG2, Phonetic.Languages.Simplified.Lists.DeEnCoding
+  other-modules:       Phonetic.Languages.Simplified.Lists.Ukrainian.FuncRep2RelatedG2, Phonetic.Languages.Simplified.Lists.DeEnCoding, Phonetic.Languages.Simplified.Lists.SimpleConstraints
   other-extensions:    BangPatterns
-  build-depends:       base >=4.8 && <4.15, ukrainian-phonetics-basic >=0.4.1 && <1, vector >=0.11 && <0.14, phonetic-languages-simplified-common >=0.4 && <1, phonetic-languages-simplified-properties-lists-double >=0.1 && <1, phonetic-languages-ukrainian >=0.3 && <1, uniqueness-periods-vector-filters >=0.3 && <1, uniqueness-periods-vector-stats >=0.2.1 && <1, parallel >=3.2.0.6 && <4, phonetic-languages-plus >=0.1.1 && <1, subG >= 0.4 && < 1, phonetic-languages-rhythmicity >=0.1.2 && <1, phonetic-languages-permutations >= 0.2 && <1, mmsyn2 >= 0.3 && < 1, heaps >= 0.3.6.1 && <1
+  build-depends:       base >=4.8 && <4.15, ukrainian-phonetics-basic >=0.4.1 && <1, vector >=0.11 && <0.14, phonetic-languages-simplified-common >=0.4 && <1, phonetic-languages-simplified-properties-lists-double >=0.1 && <1, phonetic-languages-ukrainian >=0.3 && <1, uniqueness-periods-vector-filters >=0.3 && <1, uniqueness-periods-vector-stats >=0.2.1 && <1, parallel >=3.2.0.6 && <4, phonetic-languages-plus >=0.2 && <1, subG >= 0.4 && < 1, phonetic-languages-rhythmicity >=0.1.2 && <1, phonetic-languages-permutations >= 0.2 && <1, mmsyn2 >= 0.3 && < 1, heaps >= 0.3.6.1 && <1, phonetic-languages-constraints >= 0.4 && <1
   ghc-options:         -threaded -rtsopts
   hs-source-dirs:      ., GetInfo
   default-language:    Haskell2010
