packages feed

phonetic-languages-simplified-generalized-properties-array 0.4.1.0 → 0.4.2.0

raw patch · 3 files changed

+107/−93 lines, 3 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

ChangeLog.md view
@@ -38,3 +38,8 @@  * Fourth version revised A. Fixed issues with the fixed point of 1.0 (arising from the issue in the dependency package phonetic-languages-rhythmicity).++## 0.4.2.0 -- 2021-07-31++* Fourth version revised B. Some code improvements (reduced duplication). Fixed issues with vice versa of the+'0' and not '0' functions.
Phonetic/Languages/Array/General/PropertiesSyllablesG2.hs view
@@ -16,7 +16,7 @@ -- then import it qualified (or this module) because they have many common data. Is provided as a standalone one -- to reduce dependencies list in general case.  -{-# LANGUAGE CPP, BangPatterns #-}+{-# LANGUAGE CPP, BangPatterns, MultiWayIf #-}  module Phonetic.Languages.Array.General.PropertiesSyllablesG2 (     -- * Newtype to work with@@ -223,106 +223,110 @@ rhythmicity k choice h CF0  | choice `elem` ["0z","02z","03z","04z"] = rhythmicity0Fi f k  | take 1 choice == "w" = case take 2 choice of-     "w0" -> rhythmicityG f (rhythmicityABC0 1.0 2.0 0.125 (Ch 1 1 4) (Rhythm 1 1 2) . mconcat)-     "w1" -> rhythmicityG f (rhythmicityABC0 1.0 2.0 0.125 (Ch 1 0 4) (Rhythm 2 1 1) . mconcat)-     "w2" -> rhythmicityG f (rhythmicityABC0 1.0 2.0 0.125 (Ch 0 1 4) (Rhythm 1 2 1) . mconcat)-     "w3" -> rhythmicityG f (rhythmicityABC0 1.0 2.0 0.125 (Ch 0 0 4) (Rhythm 1 1 2) . mconcat)-     _ -> rhythmicityG f (rhythmicityABC0 1.0 2.0 0.125 (Ch 0 0 4) (Rhythm 1 1 2) . mconcat)+     "w0" -> w0F (Ch 1 1 4) (Rhythm 1 1 2)+     "w1" -> w0F (Ch 1 0 4) (Rhythm 2 1 1)+     "w2" -> w0F (Ch 0 1 4) (Rhythm 1 2 1)+     "w3" -> w0F (Ch 0 0 4) (Rhythm 1 1 2)+     _ -> w0F (Ch 0 0 4) (Rhythm 1 1 2)  | take 1 choice == "x" = case take 2 choice of-     "x0" -> rhythmicityG f (rhythmicityABC 1.0 2.0 0.125 (Ch 1 1 4) (Rhythm 1 1 2) . mconcat)-     "x1" -> rhythmicityG f (rhythmicityABC 1.0 2.0 0.125 (Ch 1 0 4) (Rhythm 2 1 1) . mconcat)-     "x2" -> rhythmicityG f (rhythmicityABC 1.0 2.0 0.125 (Ch 0 1 4) (Rhythm 1 2 1) . mconcat)-     "x3" -> rhythmicityG f (rhythmicityABC 1.0 2.0 0.125 (Ch 0 0 4) (Rhythm 1 1 2) . mconcat)-     _ -> rhythmicityG f (rhythmicityABC 1.0 2.0 0.125 (Ch 0 0 4) (Rhythm 1 1 2) . mconcat)+     "x0" -> x0F (Ch 1 1 4) (Rhythm 1 1 2)+     "x1" -> x0F (Ch 1 0 4) (Rhythm 2 1 1)+     "x2" -> x0F (Ch 0 1 4) (Rhythm 1 2 1)+     "x3" -> x0F (Ch 0 0 4) (Rhythm 1 1 2)+     _ -> x0F (Ch 0 0 4) (Rhythm 1 1 2)  | take 1 choice == "c" = let just_probe = readRhythmicity choice in            case just_probe of              Just (P1 ch rh _) -> rhythmicityG f (rhythmicityABC 1.0 2.0 0.125 ch rh . mconcat)              Just (P2 ch rh r _) -> rhythmicityG f (rhythmicityPoly 1.0 r ch rh . mconcat)              _ -> rhythmicity0i f- | take 1 choice == "u" =-      case take 2 choice of-           "u0" -> rhythmicityG f (rhythmicityPoly 1.0 4 (PolyCh [True,True,True] 5) (PolyRhythm [1,2,1,1]) . mconcat)-           "u1" -> rhythmicityG f (rhythmicityPoly 1.0 4 (PolyCh [True,True,False] 5) (PolyRhythm [1,2,1,1]) . mconcat)-           "u2" -> rhythmicityG f (rhythmicityPoly 1.0 4 (PolyCh [True,False,True] 5) (PolyRhythm [1,2,1,1]) . mconcat)-           "u3" -> rhythmicityG f (rhythmicityPoly 1.0 4 (PolyCh [True,False,False] 5) (PolyRhythm [1,2,1,1]) . mconcat)-           "u4" -> rhythmicityG f (rhythmicityPoly 1.0 4 (PolyCh [True,True,True] 5) (PolyRhythm [2,1,1,1]) . mconcat)-           "u5" -> rhythmicityG f (rhythmicityPoly 1.0 4 (PolyCh [True,True,False] 5) (PolyRhythm [2,1,1,1]) . mconcat)-           "u6" -> rhythmicityG f (rhythmicityPoly 1.0 4 (PolyCh [True,False,True] 5) (PolyRhythm [2,1,1,1]) . mconcat)-           "u7" -> rhythmicityG f (rhythmicityPoly 1.0 4 (PolyCh [True,False,False] 5) (PolyRhythm [2,1,1,1]) . mconcat)-           _ -> rhythmicity0i f- | take 1 choice == "v" =-      case take 2 choice of-           "v0" -> rhythmicityG f (rhythmicityPoly0 1.0 4 (PolyCh [True,True,True] 5) (PolyRhythm [1,2,1,1]) . mconcat)-           "v1" -> rhythmicityG f (rhythmicityPoly0 1.0 4 (PolyCh [True,True,False] 5) (PolyRhythm [1,2,1,1]) . mconcat)-           "v2" -> rhythmicityG f (rhythmicityPoly0 1.0 4 (PolyCh [True,False,True] 5) (PolyRhythm [1,2,1,1]) . mconcat)-           "v3" -> rhythmicityG f (rhythmicityPoly0 1.0 4 (PolyCh [True,False,False] 5) (PolyRhythm [1,2,1,1]) . mconcat)-           "v4" -> rhythmicityG f (rhythmicityPoly0 1.0 4 (PolyCh [True,True,True] 5) (PolyRhythm [2,1,1,1]) . mconcat)-           "v5" -> rhythmicityG f (rhythmicityPoly0 1.0 4 (PolyCh [True,True,False] 5) (PolyRhythm [2,1,1,1]) . mconcat)-           "v6" -> rhythmicityG f (rhythmicityPoly0 1.0 4 (PolyCh [True,False,True] 5) (PolyRhythm [2,1,1,1]) . mconcat)-           "v7" -> rhythmicityG f (rhythmicityPoly0 1.0 4 (PolyCh [True,False,False] 5) (PolyRhythm [2,1,1,1]) . mconcat)-           _ -> rhythmicity0i f- | take 1 choice == "s" =-      case take 2 choice of-           "s0" -> rhythmicityG f (rhythmicityPoly 1.0 4 (PolyCh [True,True,True] 6) (PolyRhythm [1,2,1,2]) . mconcat)-           "s1" -> rhythmicityG f (rhythmicityPoly 1.0 4 (PolyCh [True,True,False] 6) (PolyRhythm [1,2,1,2]) . mconcat)-           "s2" -> rhythmicityG f (rhythmicityPoly 1.0 4 (PolyCh [True,False,True] 6) (PolyRhythm [1,2,1,2]) . mconcat)-           "s3" -> rhythmicityG f (rhythmicityPoly 1.0 4 (PolyCh [True,False,False] 6) (PolyRhythm [1,2,1,2]) . mconcat)-           "s4" -> rhythmicityG f (rhythmicityPoly 1.0 4 (PolyCh [True,True,True] 6) (PolyRhythm [2,1,1,2]) . mconcat)-           "s5" -> rhythmicityG f (rhythmicityPoly 1.0 4 (PolyCh [True,True,False] 6) (PolyRhythm [2,1,1,2]) . mconcat)-           "s6" -> rhythmicityG f (rhythmicityPoly 1.0 4 (PolyCh [True,False,True] 6) (PolyRhythm [2,1,1,2]) . mconcat)-           "s7" -> rhythmicityG f (rhythmicityPoly 1.0 4 (PolyCh [True,False,False] 6) (PolyRhythm [2,1,1,2]) . mconcat)-           _ -> rhythmicity0i f- | take 1 choice == "t" =-      case take 2 choice of-           "t0" -> rhythmicityG f (rhythmicityPoly0 1.0 4 (PolyCh [True,True,True] 6) (PolyRhythm [1,2,1,2]) . mconcat)-           "t1" -> rhythmicityG f (rhythmicityPoly0 1.0 4 (PolyCh [True,True,False] 6) (PolyRhythm [1,2,1,2]) . mconcat)-           "t2" -> rhythmicityG f (rhythmicityPoly0 1.0 4 (PolyCh [True,False,True] 6) (PolyRhythm [1,2,1,2]) . mconcat)-           "t3" -> rhythmicityG f (rhythmicityPoly0 1.0 4 (PolyCh [True,False,False] 6) (PolyRhythm [1,2,1,2]) . mconcat)-           "t4" -> rhythmicityG f (rhythmicityPoly0 1.0 4 (PolyCh [True,True,True] 6) (PolyRhythm [2,1,1,2]) . mconcat)-           "t5" -> rhythmicityG f (rhythmicityPoly0 1.0 4 (PolyCh [True,True,False] 6) (PolyRhythm [2,1,1,2]) . mconcat)-           "t6" -> rhythmicityG f (rhythmicityPoly0 1.0 4 (PolyCh [True,False,True] 6) (PolyRhythm [2,1,1,2]) . mconcat)-           "t7" -> rhythmicityG f (rhythmicityPoly0 1.0 4 (PolyCh [True,False,False] 6) (PolyRhythm [2,1,1,2]) . mconcat)-           _ -> rhythmicity0i f+ | take 1 choice == "u" = if+     | (drop 1 . take 2 $ choice) >= "0" && (drop 1 . take 2 $ choice) <= "3" ->+         let uu0F rs = u0F (PolyCh rs 5) (PolyRhythm [1,2,1,1]) in+               case drop 1 . take 2 $ choice of+                 "0" -> uu0F [True,True,True]+                 "1" -> uu0F [True,True,False]+                 "2" -> uu0F [True,False,True]+                 _ -> uu0F [True,False,False]+     | (drop 1 . take 2 $ choice) >= "4" && (drop 1 . take 2 $ choice) <= "7" ->+         let uu0F rs = u0F (PolyCh rs 5) (PolyRhythm [2,1,1,1]) in+               case drop 1 . take 2 $ choice of+                 "4" -> uu0F [True,True,True]+                 "5" -> uu0F [True,True,False]+                 "6" -> uu0F [True,False,True]+                 ~"7" -> uu0F [True,False,False]+     | otherwise -> rhythmicity0i f+ | take 1 choice == "v" = if+     | (drop 1 . take 2 $ choice) >= "0" && (drop 1 . take 2 $ choice) <= "3" ->+         let vv0F rs = v0F (PolyCh rs 5) (PolyRhythm [1,2,1,1]) in+               case drop 1 . take 2 $ choice of+                 "0" -> vv0F [True,True,True]+                 "1" -> vv0F [True,True,False]+                 "2" -> vv0F [True,False,True]+                 _ -> vv0F [True,False,False]+     | (drop 1 . take 2 $ choice) >= "4" && (drop 1 . take 2 $ choice) <= "7" ->+         let vv0F rs = v0F (PolyCh rs 5) (PolyRhythm [2,1,1,1]) in+               case drop 1 . take 2 $ choice of+                 "4" -> vv0F [True,True,True]+                 "5" -> vv0F [True,True,False]+                 "6" -> vv0F [True,False,True]+                 ~"7" -> vv0F [True,False,False]+     | otherwise -> rhythmicity0i f+ | take 1 choice == "s" = if+     | (drop 1 . take 2 $ choice) >= "0" && (drop 1 . take 2 $ choice) <= "3" ->+         let ss0F rs = u0F (PolyCh rs 6) (PolyRhythm [1,2,1,2]) in+               case drop 1 . take 2 $ choice of+                 "0" -> ss0F [True,True,True]+                 "1" -> ss0F [True,True,False]+                 "2" -> ss0F [True,False,True]+                 _ -> ss0F [True,False,False]+     | (drop 1 . take 2 $ choice) >= "4" && (drop 1 . take 2 $ choice) <= "7" ->+         let ss0F rs = u0F (PolyCh rs 6) (PolyRhythm [2,1,1,2]) in+               case drop 1 . take 2 $ choice of+                 "4" -> ss0F [True,True,True]+                 "5" -> ss0F [True,True,False]+                 "6" -> ss0F [True,False,True]+                 ~"7" -> ss0F [True,False,False]+     | otherwise -> rhythmicity0i f+ | take 1 choice == "t" = if+     | (drop 1 . take 2 $ choice) >= "0" && (drop 1 . take 2 $ choice) <= "3" ->+         let tt0F rs = v0F (PolyCh rs 6) (PolyRhythm [1,2,1,2]) in+               case drop 1 . take 2 $ choice of+                 "0" -> tt0F [True,True,True]+                 "1" -> tt0F [True,True,False]+                 "2" -> tt0F [True,False,True]+                 _ -> tt0F [True,False,False]+     | (drop 1 . take 2 $ choice) >= "4" && (drop 1 . take 2 $ choice) <= "7" ->+         let tt0F rs = v0F (PolyCh rs 6) (PolyRhythm [2,1,1,2]) in+               case drop 1 . take 2 $ choice of+                 "4" -> tt0F [True,True,True]+                 "5" -> tt0F [True,True,False]+                 "6" -> tt0F [True,False,True]+                 ~"7" -> tt0F [True,False,False]+     | otherwise -> rhythmicity0i f  | otherwise = rhythmicity0i f      where f = h k choice+           w0F ch rh = rhythmicityG f (rhythmicityABC 1.0 2.0 0.125 ch rh . mconcat)+           x0F ch rh = rhythmicityG f (rhythmicityABC0 1.0 2.0 0.125 ch rh . mconcat)+           u0F ch rh = rhythmicityG f (rhythmicityPoly 1.0 4 ch rh . mconcat)+           v0F ch rh = rhythmicityG f (rhythmicityPoly0 1.0 4 ch rh . mconcat)+           {-# INLINE w0F #-}+           {-# INLINE x0F #-}+           {-# INLINE u0F #-}+           {-# INLINE v0F #-} rhythmicity k choice h (CF2 x y)  | choice `elem` ["0z","02z","03z","04z"] = rhythmicityKFi f k (fromMaybe 1.0 x) (fromMaybe 1.0 y)- | take 1 choice == "w" = case choice of-     "w01" -> rhythmicityG f (rhythmicityABC0 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 1 1 4) (Rhythm 1 1 2) . mconcat)-     "w02" -> rhythmicityG f (rhythmicityABC0 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 1 1 4) (Rhythm 1 1 2) . mconcat)-     "w03" -> rhythmicityG f (rhythmicityABC0 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 1 1 4) (Rhythm 1 1 2) . mconcat)-     "w04" -> rhythmicityG f (rhythmicityABC0 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 1 1 4) (Rhythm 1 1 2) . mconcat)-     "w11" -> rhythmicityG f (rhythmicityABC0 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 1 0 4) (Rhythm 2 1 1) . mconcat)-     "w12" -> rhythmicityG f (rhythmicityABC0 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 1 0 4) (Rhythm 2 1 1) . mconcat)-     "w13" -> rhythmicityG f (rhythmicityABC0 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 1 0 4) (Rhythm 2 1 1) . mconcat)-     "w14" -> rhythmicityG f (rhythmicityABC0 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 1 0 4) (Rhythm 2 1 1) . mconcat)-     "w21" -> rhythmicityG f (rhythmicityABC0 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 0 1 4) (Rhythm 1 2 1) . mconcat)-     "w22" -> rhythmicityG f (rhythmicityABC0 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 0 1 4) (Rhythm 1 2 1) . mconcat)-     "w23" -> rhythmicityG f (rhythmicityABC0 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 0 1 4) (Rhythm 1 2 1) . mconcat)-     "w24" -> rhythmicityG f (rhythmicityABC0 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 0 1 4) (Rhythm 1 2 1) . mconcat)-     "w31" -> rhythmicityG f (rhythmicityABC0 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 0 0 4) (Rhythm 1 1 2) . mconcat)-     "w32" -> rhythmicityG f (rhythmicityABC0 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 0 0 4) (Rhythm 1 1 2) . mconcat)-     "w33" -> rhythmicityG f (rhythmicityABC0 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 0 0 4) (Rhythm 1 1 2) . mconcat)-     "w34" -> rhythmicityG f (rhythmicityABC0 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 0 0 4) (Rhythm 1 1 2) . mconcat)-     _ -> rhythmicityG f (rhythmicityABC0 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 0 0 4) (Rhythm 1 1 2) . mconcat)- | take 1 choice == "x" = case choice of-     "x01" -> rhythmicityG f (rhythmicityABC 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 1 1 4) (Rhythm 1 1 2) . mconcat)-     "x02" -> rhythmicityG f (rhythmicityABC 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 1 1 4) (Rhythm 1 1 2) . mconcat)-     "x03" -> rhythmicityG f (rhythmicityABC 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 1 1 4) (Rhythm 1 1 2) . mconcat)-     "x04" -> rhythmicityG f (rhythmicityABC 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 1 1 4) (Rhythm 1 1 2) . mconcat)-     "x11" -> rhythmicityG f (rhythmicityABC 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 1 0 4) (Rhythm 2 1 1) . mconcat)-     "x12" -> rhythmicityG f (rhythmicityABC 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 1 0 4) (Rhythm 2 1 1) . mconcat)-     "x13" -> rhythmicityG f (rhythmicityABC 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 1 0 4) (Rhythm 2 1 1) . mconcat)-     "x14" -> rhythmicityG f (rhythmicityABC 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 1 0 4) (Rhythm 2 1 1) . mconcat)-     "x21" -> rhythmicityG f (rhythmicityABC 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 0 1 4) (Rhythm 1 2 1) . mconcat)-     "x22" -> rhythmicityG f (rhythmicityABC 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 0 1 4) (Rhythm 1 2 1) . mconcat)-     "x23" -> rhythmicityG f (rhythmicityABC 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 0 1 4) (Rhythm 1 2 1) . mconcat)-     "x24" -> rhythmicityG f (rhythmicityABC 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 0 1 4) (Rhythm 1 2 1) . mconcat)-     "x31" -> rhythmicityG f (rhythmicityABC 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 0 0 4) (Rhythm 1 1 2) . mconcat)-     "x32" -> rhythmicityG f (rhythmicityABC 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 0 0 4) (Rhythm 1 1 2) . mconcat)-     "x33" -> rhythmicityG f (rhythmicityABC 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 0 0 4) (Rhythm 1 1 2) . mconcat)-     "x34" -> rhythmicityG f (rhythmicityABC 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 0 0 4) (Rhythm 1 1 2) . mconcat)-     _ -> rhythmicityG f (rhythmicityABC 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) (Ch 0 0 4) (Rhythm 1 1 2) . mconcat)+ | take 1 choice == "w" = if+   | choice `elem` ["w01","w02","w03","w04"] -> w0F (Ch 1 1 4) (Rhythm 1 1 2)+   | choice `elem` ["w11","w12","w13","w14"] -> w0F (Ch 1 0 4) (Rhythm 2 1 1)+   | choice `elem` ["w21","w22","w23","w24"] -> w0F (Ch 0 1 4) (Rhythm 1 2 1)+   | choice `elem` ["w31","w32","w33","w34"] -> w0F (Ch 0 0 4) (Rhythm 1 1 2)+   | otherwise -> w0F (Ch 1 0 4) (Rhythm 1 1 2)+ | take 1 choice == "x" = if+   | choice `elem` ["x01","x02","x03","x04"] -> x0F (Ch 1 1 4) (Rhythm 1 1 2)+   | choice `elem` ["x11","x12","x13","x14"] -> x0F (Ch 1 0 4) (Rhythm 2 1 1)+   | choice `elem` ["x21","x22","x23","x24"] -> x0F (Ch 0 1 4) (Rhythm 1 2 1)+   | choice `elem` ["x31","x32","x33","x34"] -> x0F (Ch 0 0 4) (Rhythm 1 1 2)+   | otherwise -> x0F (Ch 1 0 4) (Rhythm 1 1 2)  | take 1 choice == "c" = rhythmicity k choice h CF0  | take 1 choice == "u" = rhythmicity k choice h CF0  | take 1 choice == "v" = rhythmicity k choice h CF0@@ -330,3 +334,8 @@  | take 1 choice == "t" = rhythmicity k choice h CF0  | otherwise = rhythmicityKi f (fromMaybe 1.0 x) (fromMaybe 1.0 y)      where f = h k choice+           w0F ch rh = rhythmicityG f (rhythmicityABC 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) ch rh . mconcat)+           x0F ch rh = rhythmicityG f (rhythmicityABC0 1.0 (fromMaybe 2.0 x) (fromMaybe 0.125 y) ch rh . mconcat)+           {-# INLINE w0F #-}+           {-# INLINE x0F #-}+           
phonetic-languages-simplified-generalized-properties-array.cabal view
@@ -3,7 +3,7 @@ -- http://haskell.org/cabal/users-guide/  name:                phonetic-languages-simplified-generalized-properties-array-version:             0.4.1.0+version:             0.4.2.0 synopsis:            Some 'properties' of the phonetic languages approach text. description:         Generalizes the functionality of the https://hackage.haskell.org/package/phonetic-languages-simplified-properties-array  homepage:            https://hackage.haskell.org/package/phonetic-languages-simplified-generalized-properties-array@@ -20,7 +20,7 @@ library   exposed-modules:     Phonetic.Languages.Array.General.PropertiesFuncRepG2, Phonetic.Languages.Array.General.PropertiesSyllablesG2   -- other-modules:-  other-extensions:    CPP, BangPatterns+  other-extensions:    CPP, BangPatterns, MultiWayIf   build-depends:       base >=4.8 && <4.15, phonetic-languages-simplified-base >=0.2 && <1, phonetic-languages-rhythmicity >=0.5.1 && <1, phonetic-languages-phonetics-basics >=0.8.1 && <1   -- hs-source-dirs:   default-language:    Haskell2010