packages feed

phonetic-languages-simplified-properties-array-0.17.2.0: Phladiprelio/Ukrainian/PropertiesSyllablesG201.hs

{-# OPTIONS_HADDOCK show-extensions #-}

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

{-# LANGUAGE NoImplicitPrelude, BangPatterns, MultiWayIf #-}

module Phladiprelio.Ukrainian.PropertiesSyllablesG201 (
  -- * Extended rhythmicity properties
  -- ** Rhythmicity properties (semi-empirical)
  -- *** General ones
  rhythmicity0HTup
  , rhythmicity0FHTup
  , rhythmicityKHTup
  , rhythmicityKFHTup
  -- *** Simple one
  , rhythmicity0Tup
  , rhythmicity0FTup
  -- *** With weight coefficients
  , rhythmicityKTup
  , rhythmicityKFTup
  -- ** Rhythmicity properties from generated with r-glpk-phonetic-languages-ukrainian-durations package (since 0.2.0.0 version)
  -- *** Simple one
  , rhythmicity02Tup
  , rhythmicity02FTup
  -- *** With weight coefficients
  , rhythmicityK2Tup
  , rhythmicityKF2Tup
  -- ** NEW Rhythmicity properties from generated with r-glpk-phonetic-languages-ukrainian-durations package
  -- *** Simple ones
  , rhythmicity03Tup
  , rhythmicity03FTup
  , rhythmicity04Tup
  , rhythmicity04FTup
  -- *** With weight coefficients
  , rhythmicityK3Tup
  , rhythmicityKF3Tup
  , rhythmicityK4Tup
  , rhythmicityKF4Tup
  -- ** General
  , rhythmicityGTup
) where

import GHC.Base
import Phladiprelio.Ukrainian.Common
import Phladiprelio.Ukrainian.SyllableDouble
import Phladiprelio.Ukrainian.Melodics (Sound8,FlowSound)
import Phladiprelio.Ukrainian.Syllable
import Phladiprelio.Ukrainian.PropertiesSyllablesG2Common
import GHC.Arr (Array)
import GHC.Int (Int8)
import Phladiprelio.Ukrainian.Emphasis
import Phladiprelio.Rhythmicity.Factor

rhythmicityGTup
  :: ([[[Sound8]]] -> [[Double]])-- ^ A function that specifies the syllables durations, analogue of (or one of) the
  -- syllableDurationsD functions from the @ukrainian-phonetics-basics-array@ package.
  -> 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)
  -> ReadyForConstructionUkr
  -> [Double]
rhythmicityGTup f tup1 tup2 tup3 tup4 tup5 tup6 tup7 tup8 tup9 tup10 tup11 tup12 tup13 tup14 tup15 tup16 tup17 (Str xs@(_:_)) = mconcat . f . createSyllablesUkrSTup tup1 tup2 tup3 tup4 tup5 tup6 tup7 tup8 tup9 tup10 tup11 tup12 tup13 tup14 tup15 tup16 tup17 $ xs
rhythmicityGTup f tup1 tup2 tup3 tup4 tup5 tup6 tup7 tup8 tup9 tup10 tup11 tup12 tup13 tup14 tup15 tup16 tup17 (FSL xsss@(_:_)) = mconcat . f $ xsss
rhythmicityGTup _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ = []
{-# INLINE rhythmicityGTup #-}

-----------------------------------------------------

rhythmicity0HTup
  :: ([[[Sound8]]] -> [[Double]])
  -> 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)
  -> ReadyForConstructionUkr
  -> Double
rhythmicity0HTup f = rhythmicityGHTup f eval23
{-# INLINE rhythmicity0HTup #-}

rhythmicity0HNTup n = rhythmicity0HTup 
 (case n of
   1 -> syllableDurationsD
   2 -> syllableDurationsD2
   3 -> syllableDurationsD3
   _ -> syllableDurationsD4)
{-# INLINE rhythmicity0HNTup #-}

rhythmicity0Tup
  :: 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)
  -> ReadyForConstructionUkr
  -> Double
rhythmicity0Tup = rhythmicity0HNTup 1
{-# INLINE rhythmicity0Tup #-}

rhythmicity02Tup
  :: 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)
  -> ReadyForConstructionUkr
  -> Double
rhythmicity02Tup = rhythmicity0HNTup 3
{-# INLINE rhythmicity02Tup #-}

rhythmicity03Tup
  :: 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)
  -> ReadyForConstructionUkr
  -> Double
rhythmicity03Tup = rhythmicity0HNTup 3
{-# INLINE rhythmicity03Tup #-}

rhythmicity04Tup
  :: 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)
  -> ReadyForConstructionUkr
  -> Double
rhythmicity04Tup = rhythmicity0HNTup 4
{-# INLINE rhythmicity04Tup #-}

-------------------------------------------------------

rhythmicityKHTup
  :: ([[[Sound8]]] -> [[Double]])
  -> Double
  -> Double
  -> 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)
  -> ReadyForConstructionUkr
  -> Double
rhythmicityKHTup f k2 k3 = rhythmicityGHTup f (eval23K k2 k3)
{-# INLINE rhythmicityKHTup #-}

rhythmicityKHNTup n = rhythmicityKHTup 
  (case n of
   1 -> syllableDurationsD
   2 -> syllableDurationsD2
   3 -> syllableDurationsD3
   _ -> syllableDurationsD4)
{-# INLINE rhythmicityKHNTup #-}

rhythmicityKTup
  :: Double
  -> Double
  -> 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)
  -> ReadyForConstructionUkr
  -> Double
rhythmicityKTup = rhythmicityKHNTup 1
{-# INLINE rhythmicityKTup #-}

rhythmicityK2Tup
  :: Double
  -> Double
  -> 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)
  -> ReadyForConstructionUkr
  -> Double
rhythmicityK2Tup = rhythmicityKHNTup 2
{-# INLINE rhythmicityK2Tup #-}

rhythmicityK3Tup
  :: Double
  -> Double
  -> 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)
  -> ReadyForConstructionUkr
  -> Double
rhythmicityK3Tup = rhythmicityKHNTup 3
{-# INLINE rhythmicityK3Tup #-}

rhythmicityK4Tup
  :: Double
  -> Double
  -> 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)
  -> ReadyForConstructionUkr
  -> Double
rhythmicityK4Tup = rhythmicityKHNTup 4
{-# INLINE rhythmicityK4Tup #-}

--------------------------------------------------------

rhythmicity0FHTup
  :: ([[[Sound8]]] -> [[Double]])
  -> Factors
  -> Double
  -> 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)
  -> ReadyForConstructionUkr
  -> Double
rhythmicity0FHTup f ff k = rhythmicityGHTup f (eval23F ff k)
{-# INLINE rhythmicity0FHTup #-}

rhythmicity0FHNTup n = rhythmicity0FHTup 
 (case n of
   1 -> syllableDurationsD
   2 -> syllableDurationsD2
   3 -> syllableDurationsD3
   _ -> syllableDurationsD4)
{-# INLINE rhythmicity0FHNTup #-}

rhythmicity0FTup
  :: Factors
  -> Double
  -> 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)
  -> ReadyForConstructionUkr
  -> Double
rhythmicity0FTup = rhythmicity0FHNTup 1
{-# INLINE rhythmicity0FTup #-}

rhythmicity02FTup
  :: Factors
  -> Double
  -> 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)
  -> ReadyForConstructionUkr
  -> Double
rhythmicity02FTup = rhythmicity0FHNTup 2
{-# INLINE rhythmicity02FTup #-}

rhythmicity03FTup
  :: Factors
  -> Double
  -> 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)
  -> ReadyForConstructionUkr
  -> Double
rhythmicity03FTup = rhythmicity0FHNTup 3
{-# INLINE rhythmicity03FTup #-}

rhythmicity04FTup
  :: Factors
  -> Double
  -> 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)
  -> ReadyForConstructionUkr
  -> Double
rhythmicity04FTup = rhythmicity0FHNTup 4
{-# INLINE rhythmicity04FTup #-}

--------------------------------------------------------

rhythmicityKFHTup
  ::([[[Sound8]]] -> [[Double]])
  -> Factors
  -> Double
  -> Double
  -> Double
  -> 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)
  -> ReadyForConstructionUkr
  -> Double
rhythmicityKFHTup f ff k k2 k3 = rhythmicityGHTup f (eval23KF ff k k2 k3)
{-# INLINE rhythmicityKFHTup #-}

rhythmicityKFHNTup n = rhythmicityKFHTup
 (case n of
   1 -> syllableDurationsD
   2 -> syllableDurationsD2
   3 -> syllableDurationsD3
   _ -> syllableDurationsD4)
{-# INLINE rhythmicityKFHNTup #-}

rhythmicityKFTup
  :: Factors
  -> Double
  -> Double
  -> Double
  -> 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)
  -> ReadyForConstructionUkr
  -> Double
rhythmicityKFTup = rhythmicityKFHNTup 1
{-# INLINE rhythmicityKFTup #-}

rhythmicityKF2Tup
  :: Factors
  -> Double
  -> Double
  -> Double
  -> 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)
  -> ReadyForConstructionUkr
  -> Double
rhythmicityKF2Tup = rhythmicityKFHNTup 2
{-# INLINE rhythmicityKF2Tup #-}

rhythmicityKF3Tup
  :: Factors
  -> Double
  -> Double
  -> Double
  -> 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)
  -> ReadyForConstructionUkr
  -> Double
rhythmicityKF3Tup = rhythmicityKFHNTup 1
{-# INLINE rhythmicityKF3Tup #-}

rhythmicityKF4Tup
  :: Factors
  -> Double
  -> Double
  -> Double
  -> 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)
  -> ReadyForConstructionUkr
  -> Double
rhythmicityKF4Tup = rhythmicityKFHNTup 1
{-# INLINE rhythmicityKF4Tup #-}