{-# OPTIONS_HADDOCK show-extensions #-}

-- |
-- Module      :  Phladiprelio.Ukrainian.PropertiesFuncRepG2Rhythmicity
-- Copyright   :  (c) Oleksandr Zhabenko 2020-2023
-- License     :  MIT
-- Stability   :  Experimental
-- Maintainer  :  oleksandr.zhabenko@yahoo.com
--
-- Generalization of the functionality of the DobutokO.Poetry.Norms
-- and DobutokO.Poetry.Norms.Extended modules
-- from the @dobutokO-poetry@ package. Instead of vectors, uses arrays.

{-# LANGUAGE  NoImplicitPrelude #-}

module Phladiprelio.Ukrainian.PropertiesFuncRepG2Rhythmicity (
  -- * Extended
  -- ** Working with rhythmicity
  procRhythmicity23FTup
  -- *** Working with rhythmicity that can be defined by the user (using 'rhythmicityH')
  , procRhythmicity23FHTup
) where


import GHC.Base
import Phladiprelio.Ukrainian.Common hiding (procRhythm23F)
import Phladiprelio.Ukrainian.PropertiesSyllablesG2H
import Phladiprelio.Ukrainian.PropertiesSyllablesG2Hprime
import qualified Phladiprelio.Basis as B
import Phladiprelio.Ukrainian.Melodics
import GHC.Arr (Array)
import GHC.Int (Int8)
import Phladiprelio.Ukrainian.Emphasis
import Phladiprelio.Coeffs
import Phladiprelio.Rhythmicity.Factor

procRhythmicity23FTup
  :: (Ord c) => Factors
  -> Double
  -> (Double -> c)
  -> String
  -> Coeffs2
  -> Array Int (Int8, Bool)
  -> Array Int (Int8, Bool)
  -> Array Int (Int8, Bool)
  -> Array Int (Int8, Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int ([Int8], Int8)
  -> Array Int (Int8, FlowSound -> Sound8)
  -> Array Int (Int8, Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int (Int8, [Int8])
  -> Array Int (Char,Int8)
  -> Array Int (Int8,[Int8])
  -> Array Int (Char, Bool)
  -> Array Int (Char, Bool)
  -> Array Int (Int8,Bool)
  -> B.FuncRep2 ReadyForConstructionUkr Double c
procRhythmicity23FTup :: forall c.
Ord c =>
Factors
-> Double
-> (Double -> c)
-> String
-> Coeffs2
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, [Int8] -> Int8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Int8)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8, Bool)
-> FuncRep2 ReadyForConstructionUkr Double c
procRhythmicity23FTup Factors
ff Double
k Double -> c
g String
choice Coeffs2
coeffs Array Int (Int8, Bool)
tup1 Array Int (Int8, Bool)
tup2 Array Int (Int8, Bool)
tup3 Array Int (Int8, Bool)
tup4 Array Int ([Int8], Bool)
tup5 Array Int ([Int8], Int8)
tup6 Array Int (Int8, [Int8] -> Int8)
tup7 Array Int (Int8, Bool)
tup8 Array Int ([Int8], Bool)
tup9 Array Int ([Int8], Bool)
tup10 Array Int ([Int8], Bool)
tup11 Array Int (Int8, [Int8])
tup12 Array Int (Char, Int8)
tup13 Array Int (Int8, [Int8])
tup14 Array Int (Char, Bool)
tup15 Array Int (Char, Bool)
tup16 Array Int (Int8, Bool)
tup17  = forall a b c. (a -> b) -> (b -> c) -> FuncRep2 a b c
B.D (Factors
-> Double
-> String
-> Coeffs2
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, [Int8] -> Int8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Int8)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8, Bool)
-> ReadyForConstructionUkr
-> Double
rhythmicityTup Factors
ff Double
k String
choice Coeffs2
coeffs Array Int (Int8, Bool)
tup1 Array Int (Int8, Bool)
tup2 Array Int (Int8, Bool)
tup3 Array Int (Int8, Bool)
tup4 Array Int ([Int8], Bool)
tup5 Array Int ([Int8], Int8)
tup6 Array Int (Int8, [Int8] -> Int8)
tup7 Array Int (Int8, Bool)
tup8 Array Int ([Int8], Bool)
tup9 Array Int ([Int8], Bool)
tup10 Array Int ([Int8], Bool)
tup11 Array Int (Int8, [Int8])
tup12 Array Int (Char, Int8)
tup13 Array Int (Int8, [Int8])
tup14 Array Int (Char, Bool)
tup15 Array Int (Char, Bool)
tup16 Array Int (Int8, Bool)
tup17) Double -> c
g
{-# INLINE procRhythmicity23FTup #-}

procRhythmicity23FHTup
  :: (Ord c) => Factors
  -> Double
  -> (Double -> c)
  -> [[[[Sound8]]] -> [[Double]]]
  -> String
  -> Coeffs2
  -> String
  -> Array Int (Int8, Bool)
  -> Array Int (Int8, Bool)
  -> Array Int (Int8, Bool)
  -> Array Int (Int8, Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int ([Int8], Int8)
  -> Array Int (Int8, FlowSound -> Sound8)
  -> Array Int (Int8, Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int ([Int8], Bool)
  -> Array Int (Int8, [Int8])
  -> Array Int (Char,Int8)
  -> Array Int (Int8,[Int8])
  -> Array Int (Char, Bool)
  -> Array Int (Char, Bool)
  -> Array Int (Int8,Bool)
  -> B.FuncRep2 ReadyForConstructionUkr Double c
procRhythmicity23FHTup :: forall c.
Ord c =>
Factors
-> Double
-> (Double -> c)
-> [[[[Int8]]] -> [[Double]]]
-> String
-> Coeffs2
-> String
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, [Int8] -> Int8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Int8)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8, Bool)
-> FuncRep2 ReadyForConstructionUkr Double c
procRhythmicity23FHTup Factors
ff Double
k Double -> c
g [[[[Int8]]] -> [[Double]]]
syllableDurationsDs String
choice Coeffs2
coeffs String
bbs Array Int (Int8, Bool)
tup1 Array Int (Int8, Bool)
tup2 Array Int (Int8, Bool)
tup3 Array Int (Int8, Bool)
tup4 Array Int ([Int8], Bool)
tup5 Array Int ([Int8], Int8)
tup6 Array Int (Int8, [Int8] -> Int8)
tup7 Array Int (Int8, Bool)
tup8 Array Int ([Int8], Bool)
tup9 Array Int ([Int8], Bool)
tup10 Array Int ([Int8], Bool)
tup11 Array Int (Int8, [Int8])
tup12 Array Int (Char, Int8)
tup13 Array Int (Int8, [Int8])
tup14 Array Int (Char, Bool)
tup15 Array Int (Char, Bool)
tup16 Array Int (Int8, Bool)
tup17 = forall a b c. (a -> b) -> (b -> c) -> FuncRep2 a b c
B.D (Factors
-> Double
-> String
-> [[[[Int8]]] -> [[Double]]]
-> Coeffs2
-> String
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Int8)
-> Array Int (Int8, [Int8] -> Int8)
-> Array Int (Int8, Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int ([Int8], Bool)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Int8)
-> Array Int (Int8, [Int8])
-> Array Int (Char, Bool)
-> Array Int (Char, Bool)
-> Array Int (Int8, Bool)
-> ReadyForConstructionUkr
-> Double
rhythmicityHTup Factors
ff Double
k String
choice [[[[Int8]]] -> [[Double]]]
syllableDurationsDs Coeffs2
coeffs String
bbs Array Int (Int8, Bool)
tup1 Array Int (Int8, Bool)
tup2 Array Int (Int8, Bool)
tup3 Array Int (Int8, Bool)
tup4 Array Int ([Int8], Bool)
tup5 Array Int ([Int8], Int8)
tup6 Array Int (Int8, [Int8] -> Int8)
tup7 Array Int (Int8, Bool)
tup8 Array Int ([Int8], Bool)
tup9 Array Int ([Int8], Bool)
tup10 Array Int ([Int8], Bool)
tup11 Array Int (Int8, [Int8])
tup12 Array Int (Char, Int8)
tup13 Array Int (Int8, [Int8])
tup14 Array Int (Char, Bool)
tup15 Array Int (Char, Bool)
tup16 Array Int (Int8, Bool)
tup17) Double -> c
g
{-# INLINE procRhythmicity23FHTup #-}