module Data.Morpheus.Execution.Internal.Utils ( capital , nonCapital , nameSpaceWith , nameSpaceType , nameSpaceTypeString ) where import Data.Char (toLower, toUpper) import Data.Semigroup ((<>)) import Data.Text (Text, unpack) nameSpaceTypeString :: [String] -> String -> String nameSpaceTypeString list name = concatMap capital (list <> [name]) nameSpaceType :: [Text] -> Text -> String nameSpaceType list name = concatMap (capital . unpack) (list <> [name]) nameSpaceWith :: String -> String -> String nameSpaceWith nSpace name = nonCapital nSpace <> capital name nonCapital :: String -> String nonCapital [] = [] nonCapital (x:xs) = toLower x : xs capital :: String -> String capital [] = [] capital (x:xs) = toUpper x : xs