phonetic-languages-simplified-lists-examples 0.5.0.0 → 0.6.0.0
raw patch · 6 files changed
+118/−94 lines, 6 filesdep ~phonetic-languages-plusPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: phonetic-languages-plus
API changes (from Hackage documentation)
+ Phonetic.Languages.Simplified.Lists.SimpleConstraints: showB :: Int -> Bool -> String
Files
- CHANGELOG.md +6/−0
- GetInfo/Main.hs +62/−47
- Phonetic/Languages/Simplified/Lists/SimpleConstraints.hs +17/−0
- README.md +1/−2
- Simple/Main.hs +23/−36
- phonetic-languages-simplified-lists-examples.cabal +9/−9
CHANGELOG.md view
@@ -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.+
GetInfo/Main.hs view
@@ -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 =
+ Phonetic/Languages/Simplified/Lists/SimpleConstraints.hs view
@@ -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 = ""
README.md view
@@ -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
Simple/Main.hs view
@@ -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
phonetic-languages-simplified-lists-examples.cabal view
@@ -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