module Data.FuzzySet.Utils ( (<$$>) , (<$$$>) , safeHead , enclosedIn , substr ) where import Data.Text (Text, cons, snoc) import qualified Data.Text as Text (<$$>) :: (Functor f, Functor g) => (a -> b) -> f (g a) -> f (g b) <$$> :: forall (f :: * -> *) (g :: * -> *) a b. (Functor f, Functor g) => (a -> b) -> f (g a) -> f (g b) (<$$>) = forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap forall b c a. (b -> c) -> (a -> b) -> a -> c . forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap infixr 8 <$$> (<$$$>) :: (Functor f, Functor g, Functor h) => (a -> b) -> f (g (h a)) -> f (g (h b)) <$$$> :: forall (f :: * -> *) (g :: * -> *) (h :: * -> *) a b. (Functor f, Functor g, Functor h) => (a -> b) -> f (g (h a)) -> f (g (h b)) (<$$$>) = forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap forall b c a. (b -> c) -> (a -> b) -> a -> c . forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap forall b c a. (b -> c) -> (a -> b) -> a -> c . forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap infixr 8 <$$$> safeHead :: [a] -> Maybe a safeHead :: forall a. [a] -> Maybe a safeHead [] = forall a. Maybe a Nothing safeHead (a h : [a] _) = forall a. a -> Maybe a Just a h enclosedIn :: Text -> Char -> Text enclosedIn :: Text -> Char -> Text enclosedIn Text str Char char = Char char Char -> Text -> Text `cons` Text str Text -> Char -> Text `snoc` Char char substr :: Int -> Int -> Text -> Text substr :: Int -> Int -> Text -> Text substr Int n Int m = Int -> Text -> Text Text.take Int n forall b c a. (b -> c) -> (a -> b) -> a -> c . Int -> Text -> Text Text.drop Int m