{-# LANGUAGE OverloadedStrings #-} module Text.Internal.Cassius (i2bMixin) where import qualified Data.Text.Lazy as TL import Text.IndentToBrace (i2b) i2bMixin :: String -> String i2bMixin :: String -> String i2bMixin String s' = Text -> String TL.unpack (Text -> String) -> Text -> String forall a b. (a -> b) -> a -> b $ Text -> Text -> Text stripEnd Text "}" (Text -> Text) -> Text -> Text forall a b. (a -> b) -> a -> b $ Text -> Text -> Text stripFront Text "mixin {" (Text -> Text) -> Text -> Text forall a b. (a -> b) -> a -> b $ Text -> Text TL.strip (Text -> Text) -> Text -> Text forall a b. (a -> b) -> a -> b $ String -> Text TL.pack (String -> Text) -> String -> Text forall a b. (a -> b) -> a -> b $ String -> String i2b (String -> String) -> String -> String forall a b. (a -> b) -> a -> b $ [String] -> String unlines ([String] -> String) -> [String] -> String forall a b. (a -> b) -> a -> b $ String "mixin" String -> [String] -> [String] forall a. a -> [a] -> [a] : ((String -> String) -> [String] -> [String] forall a b. (a -> b) -> [a] -> [b] map (String " " String -> String -> String forall a. [a] -> [a] -> [a] ++) ([String] -> [String]) -> [String] -> [String] forall a b. (a -> b) -> a -> b $ String -> [String] lines String s') where stripFront :: Text -> Text -> Text stripFront Text x Text y = case Text -> Text -> Maybe Text TL.stripPrefix Text x Text y of Maybe Text Nothing -> Text y Just Text z -> Text z stripEnd :: Text -> Text -> Text stripEnd Text x Text y = case Text -> Text -> Maybe Text TL.stripSuffix Text x Text y of Maybe Text Nothing -> Text y Just Text z -> Text z