{-# OPTIONS_HADDOCK show-extensions #-}

-- |
-- Module      :  Phladiprelio.Ukrainian.PropertiesFuncRepG2Diverse
-- 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, MagicHash #-}

module Phladiprelio.Ukrainian.PropertiesFuncRepG2Diverse (
  -- * Functions with 'Int16'
  procDiverse2ITup
  -- ** Usual ones
  , procDiverse2FTup
) where

import GHC.Enum (fromEnum)
import GHC.Base
import GHC.Int
import GHC.Arr (Array)
import Phladiprelio.UniquenessPeriodsG
import Phladiprelio.Basis
import GHC.Float (int2Double)
import Phladiprelio.Ukrainian.Melodics
import Phladiprelio.Ukrainian.Emphasis

procDiverse2ITup
  :: (Ord c) => 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)
  -> (Int16 -> c)
  -> FlowSound
  -> FuncRep2 ReadyForConstructionUkr Int16 c
procDiverse2ITup :: forall c.
Ord c =>
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)
-> (Int16 -> c)
-> [Int8]
-> FuncRep2 ReadyForConstructionUkr Int16 c
procDiverse2ITup 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 Int16 -> c
g [Int8]
sels
  = forall a b c. (a -> b) -> (b -> c) -> FuncRep2 a b c
D (\ReadyForConstructionUkr
x -> case ReadyForConstructionUkr
x of
               Str String
xs -> forall (t1 :: * -> *) (t2 :: * -> *) (t3 :: * -> *) a.
(Foldable t1, Foldable t2, Foldable t3, Ord a) =>
t3 a -> t1 a -> t2 a -> Int16
diverse2GGL [Int8]
sels [Int8
100,Int8
101] forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                  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)
-> String
-> [Int8]
convertToProperUkrainianI8WithTuples 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 forall a b. (a -> b) -> a -> b
$ String
xs
               FSL [[[Int8]]]
xsss -> Int16
1) Int16 -> c
g
{-# INLINE procDiverse2ITup #-}

procDiverse2FTup
  :: (Ord c) => 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)
  -> (Double -> c)
  -> FlowSound
  -> FuncRep2 ReadyForConstructionUkr Double c
procDiverse2FTup :: forall c.
Ord c =>
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)
-> (Double -> c)
-> [Int8]
-> FuncRep2 ReadyForConstructionUkr Double c
procDiverse2FTup 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 Double -> c
g [Int8]
sels
  = forall a b c. (a -> b) -> (b -> c) -> FuncRep2 a b c
D (\ReadyForConstructionUkr
x -> case ReadyForConstructionUkr
x of
               Str String
xs -> Int -> Double
int2Double forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Enum a => a -> Int
fromEnum forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (t1 :: * -> *) (t2 :: * -> *) (t3 :: * -> *) a.
(Foldable t1, Foldable t2, Foldable t3, Ord a) =>
t3 a -> t1 a -> t2 a -> Int16
diverse2GGL [Int8]
sels [Int8
100,Int8
101] forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                  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)
-> String
-> [Int8]
convertToProperUkrainianI8WithTuples 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 forall a b. (a -> b) -> a -> b
$ String
xs
               FSL [[[Int8]]]
xsss -> Double
1.0) Double -> c
g
{-# INLINE procDiverse2FTup #-}