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 +5/−0
- Phonetic/Languages/Array/General/PropertiesSyllablesG2.hs +100/−91
- phonetic-languages-simplified-generalized-properties-array.cabal +2/−2
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