module Sound.Sox.Private.Arguments where

import Data.Monoid (Monoid(mempty, mappend), )
import Data.Semigroup (Semigroup((<>)), )

newtype T = Cons {decons :: [String]}

instance Semigroup T where
   Cons x <> Cons y = Cons (x++y)

instance Monoid T where
   mempty = Cons mempty
   mappend = (<>)

single :: String -> T
single x = Cons [x]

fileName :: FilePath -> T
fileName = single

pipe :: T
pipe = single "-"