-- |
-- Module      :  DobutokO.Sound.Combine
-- Copyright   :  (c) OleksandrZhabenko 2020
-- License     :  MIT
-- Stability   :  Experimental
-- Maintainer  :  olexandr543@yahoo.com
--
-- Helps to create experimental music. 
-- Can be used to represent SoX combining types.
-- 

{-# OPTIONS_GHC -threaded #-}

module DobutokO.Sound.Combine where

data Combine = C | S | MX | MP | MG | ML deriving Combine -> Combine -> Bool
(Combine -> Combine -> Bool)
-> (Combine -> Combine -> Bool) -> Eq Combine
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Combine -> Combine -> Bool
$c/= :: Combine -> Combine -> Bool
== :: Combine -> Combine -> Bool
$c== :: Combine -> Combine -> Bool
Eq

instance Show Combine where
  show :: Combine -> String
show Combine
C = String
"--combine concatenate"
  show Combine
S = String
"--combine sequence"
  show Combine
MX = String
"--combine mix"
  show Combine
MP = String
"--combine mix-power"
  show Combine
MG = String
"--combine merge"
  show Combine
ML = String
"--combine multiply"

showC1 :: Combine -> [String]
showC1 :: Combine -> [String]
showC1 = String -> [String]
words (String -> [String]) -> (Combine -> String) -> Combine -> [String]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Combine -> String
forall a. Show a => a -> String
show