module Data.Morpheus.Execution.Internal.Utils ( capital , nonCapital , nameSpaceWith , nameSpaceType ) where import Data.Char ( toLower , toUpper ) import Data.Semigroup ( (<>) ) import Data.Text ( Text , unpack , pack ) import qualified Data.Text as T ( concat ) nameSpaceType :: [Text] -> Text -> Text nameSpaceType list name = T.concat $ map capital (list <> [name]) nameSpaceWith :: Text -> Text -> Text nameSpaceWith nSpace name = nonCapital nSpace <> capital name nonCapital :: Text -> Text nonCapital = pack . __nonCapital . unpack where __nonCapital [] = [] __nonCapital (x : xs) = toLower x : xs capital :: Text -> Text capital = pack . __capital . unpack where __capital [] = [] __capital (x : xs) = toUpper x : xs