packages feed

phladiprelio-ukrainian-simple 0.16.0.0 → 0.20.0.0

raw patch · 5 files changed

+35/−21 lines, 5 filesdep ~phladiprelio-general-datatypedep ~phladiprelio-ukrainian-shareddep ~rhythmic-sequencesPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: phladiprelio-general-datatype, phladiprelio-ukrainian-shared, rhythmic-sequences, ukrainian-phonetics-basic-array

API changes (from Hackage documentation)

- Phladiprelio.Ukrainian.IO: generalF :: Int -> Int -> [Double] -> Bool -> FilePath -> String -> (String, String) -> Int -> FilePath -> Int -> HashCorrections -> (Int8, [Int8]) -> Int -> Bool -> Int -> Bool -> Int8 -> (FilePath, Int) -> Bool -> String -> [String] -> IO [String]
+ Phladiprelio.Ukrainian.IO: generalF :: Int -> Int -> [Word8] -> Bool -> FilePath -> String -> (String, String) -> Int -> FilePath -> Int -> HashCorrections -> (Int8, [Int8]) -> Int -> Bool -> Int -> Bool -> Int8 -> (FilePath, Int) -> Bool -> String -> [String] -> IO [String]
- Phladiprelio.Ukrainian.IO: outputWithFile :: (Eq a1, Num a1) => String -> [Double] -> [PhladiprelioUkr] -> FilePath -> [[[[Sound8]]] -> [[Double]]] -> Int -> a1 -> Int -> FilePath -> Int -> IO ()
+ Phladiprelio.Ukrainian.IO: outputWithFile :: (Eq a1, Num a1) => String -> [Word8] -> [PhladiprelioUkr] -> FilePath -> [[[[Sound8]]] -> [[Word8]]] -> Int -> a1 -> Int -> FilePath -> Int -> IO ()

Files

CHANGELOG.md view
@@ -218,4 +218,8 @@ https://oleksandr-zhabenko.github.io/uk/rhythmicity/PhLADiPreLiO.Eng.21.html#comparative-mode-of-operation-c  Some code improvements. - ++ ## 0.20.0.0 -- 2024-04-07++* Twentieth version. Switched to Word8 instead of Double. Made a window to provide in the future possible updates for the Double-related functionality. Updated some important dependencies. Now the results can differ significantly from the earlier ones because the values are calculated in a significantly different way.+
Main.hs view
@@ -27,7 +27,7 @@ import Phladiprelio.General.Datatype3 (read3) import GHC.Real ((/),quot,gcd) import Phladiprelio.Ukrainian.Syllable -import Phladiprelio.Ukrainian.SyllableDouble+import Phladiprelio.Ukrainian.SyllableWord8 import Phladiprelio.Ukrainian.ReadDurations import Data.ChooseLine @@ -46,9 +46,9 @@     let maxNumWords = let k = fromMaybe 7 (readMaybe (concat . getB "+x" $ argsB)::Maybe Int) in if k == 0 || abs k >= 9 then 9 else max (abs k) 2         hc = R.readHashCorrections . concat . getB "+c" $ argsB         dcspecs = getB "+dc" argsB-        power10' = fromMaybe 4 (readMaybe (concat . getB "+q" $ argsB)::Maybe Int)+        power10' = fromMaybe 0 (readMaybe (concat . getB "+q" $ argsB)::Maybe Int)         power10 -           | power10' < 2 && power10' > 6 = 4+           | power10' < 0 && power10' > 4 = 0            | otherwise = power10'         (html,dcfile)            | null dcspecs = (False, "")@@ -117,8 +117,8 @@         gcd1 = gcd le lb         ldc = (le * lb) `quot` gcd1         mulp = ldc `quot` lb-        max2 = maximum basecomp-        compards = concatMap (replicate mulp . (/ max2)) basecomp+--        max2 = maximum basecomp+        compards = concatMap (replicate mulp) basecomp         (filesave,codesave)             | null filedata = ("",-1)           | length filedata == 2 = (head filedata, fromMaybe 0 (readMaybe (last filedata)::Maybe Int))@@ -162,14 +162,14 @@   | xs == "l" = putStrLn "+l \t— if specified then the output for one property (no tests) contains empty lines between the groups of the line option with the same value of property. \n"   | xs == "w" = putStrLn "+w \t— if specified with the next Int8 number then the splitting of the output for non-testing options is used. Is used when no \"-t\" argument is given. The output is splitten into two columns to improve overall experience. The parameter after the \"+w\" is divided by 10 (-10 for negative numbers) to obtain the quotient and remainder (Int8 numbers). The quotient specifies the number of spaces or tabular characters to be used between columns (if the parameter is positive then the spaces are used, otherwise tabular characters). The remainder specifies the option of displaying. If the absolute value of the remainder (the last digit of the parameter) is 1 then the output in the second column is reversed; if it is in the range [2..5] then the output is groupped by the estimation values: if it is 2 then the first column is reversed; if it is 3 then the second column is reversed; if it is 4 then like 2 but additionally the empty line is added between the groups; if it is 5 then like for 3 and additionally the empty line is added between the groups. Otherwise, the second column is reversed. The rules are rather complex, but you can give a try to any number (Int8, [129..128] in the fullscreen terminal). The default value is 50 that corresponds to some reasonable layout.\n"   | xs == "s" = putStrLn "+s \t— the next is the digit from 1 to 4 included. The default one is 2. Influences the result in the case of +d parameter is not given. \n"-  | xs == "d" = putStrLn "+d \t— see: https://web.archive.org/web/20220610171812/https://raw.githubusercontent.com/OleksandrZhabenko/phonetic-languages-data/main/0.20.0.0/56.csv as a format for the file. The explanation for how to create such a file by yourself is given at: https://oleksandr-zhabenko.github.io/uk/rhythmicity/phladiprelioEng.7.pdf#page=12 and the 2 next pages in the pdf file.\n"+  | xs == "d" = putStrLn "+d \t— if present, then afterwards should be a FilePath to the file with new durations of the Ukrainian PhLADiPreLiO representations. They can be obtained using the information in the manual by the link: https://oleksandr-zhabenko.github.io/uk/rhythmicity/phladiprelioEng.7.pdf#page=12 and the 2 next pages in the pdf file, besides on the page https://hackage.haskell.org/package/r-glpk-phonetic-languages-ukrainian-durations and on the commentaries here: https://hackage.haskell.org/package/phladiprelio-ukrainian-shared-0.5.0.0/docs/Phladiprelio-Ukrainian-ReadDurations.html#v:readSound8ToWord8.\n"   | xs == "p" = putStrLn "-p \t— if present the minimal grammar transformations (appending and prepending the dependent parts) are not applied. Can be useful also if the text is analyzed as a Ukrainian transcription of text in some other language.\n"   | xs == "f" = putStrLn "+f \t— if present with two arguments specifies the file to which the output information should be appended and the mode of appending (which parts to write). The default value if the secodnd parameter is 0 or not element of [1,2,3,4,10,11,12,13,14,15,16,17,18,19] is just the resulting String option. If the second parameter is 1 then the sequential number and the text are written; if it is 2 then the estimation value and the string are written; if it is 3 then the full information is written i. e. number, string and estimation; if it is 4 then the number and estimation (no string).\nThe second arguments greater or equal to 10 take effect only if the meter consists of two syllables (in case of \"+r 21\" command line options given). If it is 10 in such a case then before appending the line option itself to the given file there is hashes information for this line option displayed. If it is 11 — the same hashes information is displayed before processing as for 1. If it is 12 — the same hashes information is displayed before processing as for 2 and so on for 13, 14. If it is 15 up to 19 — it is analogically to the the 10–14 but the hashes information is not only printed on the screen, but appended to the file specified. These values are intended to test the interesting hypothesis about where the pauses can occur. For more information on the hypothesis, see: \n https://www.academia.edu/105067761/Why_some_lines_are_easy_to_pronounce_and_others_are_not_or_prosodic_unpredictability_as_a_characteristic_of_text\n"   | xs == "dc" = putStrLn "+dc \t— if specified with two further arguments then the first one can be 1 or something  else. If it is 1 then additionally to every line as usual there is printed also <br> html tag at the end of the line for the two-columns output. Otherwise, nothing is added to each line. The second argument further is a FilePath to the writable existing file or to the new file that will be located in the writable by the user directory. The two-column output will be additionally written to this file if it is possible, otherwise the program will end with an exception.\n"   | xs == "a" = putStrLn "+a ... -a \t— if present contains a group of constraints for PhLADiPreLiO. For more information, see: \nhttps://oleksandr-zhabenko.github.io/uk/rhythmicity/PhLADiPreLiO.Eng.21.html#constraints in English or in Ukrainian: \nhttps://oleksandr-zhabenko.github.io/uk/rhythmicity/PhLADiPreLiO.Ukr.21.html#%D0%BE%D0%B1%D0%BC%D0%B5%D0%B6%D0%B5%D0%BD%D0%BD%D1%8F-constraints\n"   | xs == "b" = putStrLn "+b ... -b \t— if present takes precedence over those ones in the +a ... -a group (the latter ones have no effect). A group of constraints for PhLADiPreLiO using some boolean-based algebra. If you use parentheses there, please, use quotation of the whole expression between the +b and -b (otherwise there will be issues with the shell or command line interpreter related to parentheses). For example, on Linux bash or Windows PowerShell: +b \'P45(A345 B32)\' -b. If you use another command line environment or interpreter, please, refer to the documentation for your case about the quotation and quotes. For more information, see: \nhttps://oleksandr-zhabenko.github.io/uk/rhythmicity/phladiprelioEng.7.pdf in English or: \nhttps://oleksandr-zhabenko.github.io/uk/rhythmicity/phladiprelioUkr.7.pdf in Ukrainian.\n"-  | xs == "l2" = putStrLn "+l2 ... -l2 \t— if present and has inside Ukrainian text then the line options are compared with it using the idea of lists similarity. The greater values correspond to the less similar and more different lines. Has no effect with +dc group of command line arguments. Has presedence over +t, +r, +k, +c etc. groups of command line options so that these latter ones have no effect when +l2 ... -l2 is present.\n"-  | xs == "q" = putStrLn "+q \t— if present with +l2 ... -l2 group of arguments then the next argument is a power of 10 which the distance between line option and the predefined line is multiplied by. The default one is 4 (that means it is  multiplied by 10000 and the value has usually 4 digits. You can specify not less than 2 and not greater than 6. Otherwise, these limit numbers are used instead. The less value here leads to more groupped options output.\n"+  | xs == "l2" = putStrLn "+l2 ... -l2 \t— if present and has inside Ukrainian text then the line options are compared with it using the idea of lists similarity. The greater values correspond to the less similar and more different lines. Has no effect with +dc group of command line arguments. Has precedence over +t, +r, +k, +c etc. groups of command line options so that these latter ones have no effect when +l2 ... -l2 is present.\n"+  | xs == "q" = putStrLn "+q \t— if present with +l2 ... -l2 group of arguments then the next argument is a power of 10 which the distance between line option and the predefined line is quoted by. The default one is 0 (that means no conversion). You can specify not less than 0 and not greater than 4. Otherwise, these limit numbers are used instead. The less value here leads to more groupped options output.\n"   | xs == "ul" = putStrLn "+ul \t— afterwards there is a string that encodes which sounds are used for diversity property evaluation. If used, then +r group has no meaning and is not used. Unlike in the link, the argument \"1\" means computing the property for all the sound representations included (for all of the present representations, so the value is maximal between all other strings instead of \"1\"). For more information, see: https://oleksandr-zhabenko.github.io/uk/rhythmicity/PhLADiPreLiO.Eng.21.html#types\n"   | xs == "r" = putStrLn "+r \t— afterwards are several unique digits not greater than 8 in the descending order — the first one is the length of the group of syllables to be considered as a period, the rest — positions of the maximums and minimums. Example: \"543\" means that the line is splitted into groups of 5 syllables starting from the beginning, then the positions of the most maximum (4 = 5 - 1) and the next (smaller) maximum (3 = 4 - 1). If there are no duplicated values then the lowest possible value here is 0, that corresponds to the lowest minimum. If there are duplicates then the lowest value here is the number of the groups of duplicates, e. g. in the sequence 1,6,3,3,4,4,5 that is one group there are two groups of duplicates — with 3 and 4 — and, therefore, the corresponding data after +r should be 7...2. The values less than the lowest minimum are neglected.\n"   | xs == "c" = putStrLn "+c \t— see explanation at the link: https://hackage.haskell.org/package/rhythmic-sequences-0.3.0.0/docs/src/Rhythmicity.MarkerSeqs.html#HashCorrections Some preliminary tests show that theee corrections influence the result but not drastically, they can lead to changes in groupping and order, but mostly leave the structure similar. This shows that the algorithms used are more stable for such changes.\n"
Phladiprelio/Ukrainian/IO.hs view
@@ -4,11 +4,13 @@  import GHC.Arr import GHC.Base +import GHC.Word import GHC.Num (Num(..),Integer,(+),(-),(*)) import GHC.Real (Integral(..),fromIntegral,(/),rem,quotRem,round,(^)) import GHC.Enum (fromEnum) import Text.Show (Show(..)) import Text.Read (readMaybe)+import Data.Ord (Down(..))  import Data.Char (isDigit,toLower,isSpace) import System.IO (putStrLn, FilePath,stdout,hSetNewlineMode,universalNewlineMode,getLine,appendFile,writeFile,putStr,readFile) import qualified Rhythmicity.MarkerSeqs as R --hiding (id)@@ -17,7 +19,7 @@ import Data.Maybe (isNothing,fromJust,fromMaybe)  import Data.Tuple (fst,snd) import Phladiprelio.Ukrainian.Syllable -import Phladiprelio.Ukrainian.SyllableDouble+import Phladiprelio.Ukrainian.SyllableWord8 import Phladiprelio.Ukrainian.Melodics  import GHC.Int (Int8) import CaseBi.Arr (getBFst')@@ -36,9 +38,9 @@ import Control.Exception  generalF- :: Int -- ^ A power of 10. 10 in this power is then multiplied the value of distance if the next ['Double'] argument is not empty. The default one is 4. The right values are in the range [2..6].+ :: Int -- ^ A power of 10. The distance value is quoted by 10 in this power if the next ['Word8'] argument is not empty. The default one is 0. The right values are in the range [0..4].  -> Int -- ^ A 'length' of the next argument here.- -> [Double] -- ^ A list of non-negative values normed by 1.0 (the greatest of which is 1.0) that the line options are compared with. If null, then the program works as for version 0.12.1.0 without this newly-introduced argument since the version 0.13.0.0. The length of it must be a least common multiplier of the (number of syllables plus number of \'_digits\' groups) to work correctly. Is not used when the next 'FilePath' and 'String' arguments are not null.+ -> [Word8] -- ^ A list of non-negative values normed by 255 (the greatest of which is 255) that the line options are compared with. If null, then the program works as for version 0.12.1.0 without this newly-introduced argument since the version 0.13.0.0. The length of it must be a least common multiplier of the (number of syllables plus number of \'_digits\' groups) to work correctly. Is not used when the next 'FilePath' and 'String' arguments are not null.  -> Bool -- ^ If 'True' then adds \"<br>\" to line endings for double column output  -> FilePath -- ^ A path to the file to save double columns output to. If empty then just prints to 'stdout'.  -> String -- ^ If not null than instead of rhythmicity evaluation using hashes and and feets, there is computed a diversity property for the specified 'String' here using the 'selectSounds' function. For more information, see: 'https://oleksandr-zhabenko.github.io/uk/rhythmicity/PhLADiPreLiO.Eng.21.html#types'@@ -61,15 +63,14 @@ generalF power10 ldc compards html dcfile selStr (prestr, poststr) lineNmb file numTest hc (grps,mxms) k descending hashStep emptyline splitting (fs,code) concurrently initstr universalSet@(_:_:_) = do    syllableDurationsDs <- readSyllableDurations file    let syllN = countSyll initstr---       universalSet = map unwords . permutations . words $ rs        f ldc compards syllableDurationsDs grps mxms -- Since the version 0.12.0.0, has a possibility to evaluate diversity property.-            | null selStr = (if null compards then (sum . R.countHashes2G hashStep hc grps mxms) else (round . (*10^power10) . distanceSqrG2 ldc compards)) . read3 (not . null . filter (not . isSpace)) 1.0 (mconcat . (if null file then case k of { 1 -> syllableDurationsD; 2 -> syllableDurationsD2; 3 -> syllableDurationsD3; 4 -> syllableDurationsD4} +            | null selStr = (if null compards then (sum . R.countHashes2G hashStep hc grps mxms) else ((`quot` 10^power10) . fromIntegral . sumAbsDistNorm compards)) . read3 (not . null . filter (not . isSpace)) 1.0 (mconcat . (if null file then case k of { 1 -> syllableDurationsD; 2 -> syllableDurationsD2; 3 -> syllableDurationsD3; 4 -> syllableDurationsD4}                           else  if length syllableDurationsDs >= k then syllableDurationsDs !! (k - 1) else syllableDurationsD2) . createSyllablesUkrS)              | otherwise = fromIntegral . diverse2GGL (selectSounds selStr) [100,101] . convertToProperUkrainianI8 . filter (\c -> not (isDigit c) && c /= '_' && c/= '=')    hSetNewlineMode stdout universalNewlineMode    if numTest >= 0 && numTest <= 179 && numTest /= 1 && null compards then testsOutput concurrently syllN f ldc syllableDurationsDs numTest universalSet    else let sRepresent = zipWith (\k (x, ys) -> S k x ys) [1..] . -                   (let h1 = if descending then (\(u,w) -> ((-1) * u, w)) else id in sortOn h1) . map (\xss -> (f ldc compards syllableDurationsDs grps mxms xss, xss)) $ universalSet+                   (if descending then sortOn (\(u,w) -> (Down u, w)) else sortOn id) . map (\xss -> (f ldc compards syllableDurationsDs grps mxms xss, xss)) $ universalSet             strOutput = (:[]) . halfsplit1G (\(S _ y _) -> y) (if html then "<br>" else "") (jjj splitting) $ sRepresent                         in do                              let lns1 = unlines strOutput@@ -155,7 +156,7 @@ {-| 'selectSounds' converts the argument after \"+ul\" command line argument into a list of  Ukrainian sound representations that is used for evaluation of \'uniqueness periods\' properties of the line. Is a modified Phonetic.Languages.Simplified.Array.Ukrainian.FuncRep2RelatedG2.parsey0Choice from the @phonetic-languages-simplified-examples-array-0.21.0.0@ package.  -} selectSounds :: String -> FlowSound-selectSounds = f . sort . filter (/= 101) . concatMap g . words . map (\c -> if c  == '.' then ' ' else toLower c)+selectSounds = f . sortOn id . filter (/= 101) . concatMap g . words . map (\c -> if c  == '.' then ' ' else toLower c)     where g = getBFst' ([101::Sound8], listArray (0,41) (("1",[1,2,3,4,5,6,7,8,10,15,17,19,21,23,25,27,28,30,32,34,36,38,39,41,43,45,47,49,50,52,54,66]):("sr",[27,28,30,32,34,36]):("vd",[8,10,15,17,19,21,23,25]) :("vs",[45,47,49,50,43,52,38,66,54,39,41]) :("vw",[1..6]) :map (\(k,t) -> (k,[t])) [("\1072",1),("\1073",15),("\1074",36),("\1075",21),("\1076",17),("\1076\1078",23),("\1076\1079",8),("\1077",2),("\1078",10),("\1079",25),("\1080",5),("\1081",27),("\1082",45),("\1083",28),("\1084",30),("\1085",32),("\1086",3),("\1087",47),("\1088",34),("\1089",49),("\1089\1100",54),("\1090",50),("\1091",4),("\1092",43),("\1093",52),("\1094",38),("\1094\1100",66),("\1095",39),("\1096",41),("\1097",55),("\1100",7),("\1102",56),("\1103",57),("\1108",58),("\1110",6),("\1111",59),("\1169",19),("\8217",61)]))           f (x:ts@(y:_))              | x == y = f ts@@ -190,10 +191,10 @@ outputWithFile   :: (Eq a1, Num a1) =>      String -- ^ If not null than instead of rhythmicity evaluation using hashes and and feets, there is computed a diversity property for the specified 'String' here using the 'selectSounds' function. For more information, see: 'https://oleksandr-zhabenko.github.io/uk/rhythmicity/PhLADiPreLiO.Eng.21.html#types'-     -> [Double] -- ^ A list of non-negative values normed by 1.0 (the greatest of which is 1.0) that the line options are compared with. If null, then the program works as for version 0.12.1.0 without this newly-introduced argument since the version 0.13.0.0. The length of it must be a least common multiplier of the (number of syllables plus number of \'_digits\' groups) to work correctly. Is not used when the next 'FilePath' and 'String' arguments are not null.+     -> [Word8] -- ^ A list of non-negative values normed by 255 (the greatest of which is 255) that the line options are compared with. If null, then the program works as for version 0.12.1.0 without this newly-introduced argument since the version 0.13.0.0. The length of it must be a least common multiplier of the (number of syllables plus number of \'_digits\' groups) to work correctly.       -> [PhladiprelioUkr]      -> FilePath -- ^ The file to read the sound representation durations from.-     -> [[[[Sound8]]] -> [[Double]]]+     -> [[[[Sound8]]] -> [[Word8]]]      -> Int      -> a1      -> Int
README.md view
@@ -77,6 +77,11 @@ For the list of bash aliases a few of which are used in the videos, see: https://github.com/Oleksandr-Zhabenko/phladiprelio-alias/blob/main/.bashrc + Breaking changes since 0.20.0.0+ ===============================++Since the version 0.20.0.0 the way of calculation is significantly changed, therefore the results are expected to be different. Please, have this in mind. It is expected to have larger groups and more options to choose from. Nevertheless, the approach becomes more stable. The performance and resources consumtion are very closely comparable with probably some subtle differences between versions 0.15.* and 0.20.0.0.+  Devotion  ======== @@ -125,6 +130,10 @@ The version 0.15.3.0 is also devoted to Sophie Kok, a sister of Emma Kok, who turned 18 on the 06/01/2024. Besides, on the 22/01/2024 there is Day of Unity of Ukraine and on the 23/01/2024 there is for Orthodox Church memory of St. Paulinus of Nola.  On the 08/03/2024 there is International Women's Day.++On the 12/03/2024 there was a Birthday of Emma Kok, the foundation founder. She turned 16. Therefore, the release 0.20.0.0 is additionally devoted i.e. tributed to her.++Besides, you can support Ukrainian people in various forms.  All support is welcome, including donations for the needs of the Ukrainian army, IDPs and refugees. 
phladiprelio-ukrainian-simple.cabal view
@@ -1,6 +1,6 @@ cabal-version:      2.4 name:               phladiprelio-ukrainian-simple-version:            0.16.0.0+version:            0.20.0.0  -- A short (one-line) description of the package. synopsis:           A PhLADiPreLiO implementation for Ukrainian that uses hashes and asynchronous concurrency.@@ -28,7 +28,7 @@      -- LANGUAGE extensions used by modules in this package.     other-extensions: NoImplicitPrelude, BangPatterns-    build-depends:    base >=4.13 && <5, rhythmic-sequences ==0.4.1.0, ukrainian-phonetics-basic-array ==0.7.1.1, phonetic-languages-ukrainian-array ==0.12.2.0, phladiprelio-ukrainian-shared ==0.1.1.0, cli-arguments ==0.7.0.0, phonetic-languages-permutations-array ==0.5.0.0, phonetic-languages-constraints-array ==0.8.0.0, phonetic-languages-simplified-base ==0.9.0.0, halfsplit ==0.4.2.0, directory >=1.3.4.0 && <2, rev-scientific ==0.2.1.0, async >= 2.2.2 && <3, phladiprelio-tests ==0.1.0.0, phladiprelio-general-datatype ==0.7.0.0, mmsyn2-array ==0.3.1.1, phonetic-languages-basis ==0.3.0.0, minmax ==0.1.1.0+    build-depends:    base >=4.13 && <5, rhythmic-sequences ==0.8.0.0, ukrainian-phonetics-basic-array ==0.10.0.0, phonetic-languages-ukrainian-array ==0.12.2.0, phladiprelio-ukrainian-shared ==0.5.0.0, cli-arguments ==0.7.0.0, phonetic-languages-permutations-array ==0.5.0.0, phonetic-languages-constraints-array ==0.8.0.0, phonetic-languages-simplified-base ==0.9.0.0, halfsplit ==0.4.2.0, directory >=1.3.4.0 && <2, rev-scientific ==0.2.1.0, async >= 2.2.2 && <3, phladiprelio-tests ==0.1.0.0, phladiprelio-general-datatype ==0.10.0.0, mmsyn2-array ==0.3.1.1, phonetic-languages-basis ==0.3.0.0, minmax ==0.1.1.0     hs-source-dirs:   .     default-language: Haskell2010 @@ -40,7 +40,7 @@     ghc-options:      -threaded -rtsopts     -- LANGUAGE extensions used by modules in this package.     other-extensions: NoImplicitPrelude, BangPatterns-    build-depends:    base >=4.13 && <5, rhythmic-sequences ==0.4.1.0, ukrainian-phonetics-basic-array ==0.7.1.1, phonetic-languages-ukrainian-array ==0.12.2.0, phladiprelio-ukrainian-shared ==0.1.1.0, cli-arguments ==0.7.0.0, phonetic-languages-permutations-array ==0.5.0.0, phonetic-languages-constraints-array ==0.8.0.0, phonetic-languages-simplified-base ==0.9.0.0, halfsplit ==0.4.2.0, directory >=1.3.4.0 && <2, rev-scientific ==0.2.1.0, async >= 2.2.2 && <3, phladiprelio-tests ==0.1.0.0, phladiprelio-general-datatype ==0.7.0.0, mmsyn2-array ==0.3.1.1, phonetic-languages-basis ==0.3.0.0, minmax ==0.1.1.0+    build-depends:    base >=4.13 && <5, rhythmic-sequences ==0.8.0.0, ukrainian-phonetics-basic-array ==0.10.0.0, phonetic-languages-ukrainian-array ==0.12.2.0, phladiprelio-ukrainian-shared ==0.5.0.0, cli-arguments ==0.7.0.0, phonetic-languages-permutations-array ==0.5.0.0, phonetic-languages-constraints-array ==0.8.0.0, phonetic-languages-simplified-base ==0.9.0.0, halfsplit ==0.4.2.0, directory >=1.3.4.0 && <2, rev-scientific ==0.2.1.0, async >= 2.2.2 && <3, phladiprelio-tests ==0.1.0.0, phladiprelio-general-datatype ==0.10.0.0, mmsyn2-array ==0.3.1.1, phonetic-languages-basis ==0.3.0.0, minmax ==0.1.1.0     hs-source-dirs:   .     default-language: Haskell2010