module Data.Text.Casing
    ( camel
    , pascal
    ) where

import qualified Data.Text   as Text
import qualified Text.Casing as C

wrap :: (String -> String) -> Text.Text -> Text.Text
wrap :: (String -> String) -> Text -> Text
wrap String -> String
f = String -> Text
Text.pack (String -> Text) -> (Text -> String) -> Text -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> String
f (String -> String) -> (Text -> String) -> Text -> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> String
Text.unpack

camel :: Text.Text -> Text.Text
camel :: Text -> Text
camel = (String -> String) -> Text -> Text
wrap String -> String
C.camel

pascal :: Text.Text -> Text.Text
pascal :: Text -> Text
pascal = (String -> String) -> Text -> Text
wrap String -> String
C.pascal