module WikiMusic.Protolude
  ( module Relude,
    module Data.UUID,
    module Optics,
    module WikiMusic.Model.Env,
    module WikiMusic.Model.Auth,
    module Data.Time,
    module Data.UUID.V4,
    module Contravariant.Extras.Contrazip,
    module Free.AlaCarte,
    mapMap,
    filterMap,
    filterText,
    module NeatInterpolation,
  )
where

import Contravariant.Extras.Contrazip
import Data.Map qualified as Map
import Data.Text qualified as T
import Data.Time (UTCTime (..), ZonedTime, getCurrentTime, secondsToDiffTime)
import Data.UUID (UUID)
import Data.UUID.V4 (nextRandom)
import Free.AlaCarte
import NeatInterpolation
import Optics hiding (uncons)
import Relude
import WikiMusic.Model.Auth hiding (show)
import WikiMusic.Model.Env

mapMap :: (a -> b) -> Map k a -> Map k b
mapMap :: forall a b k. (a -> b) -> Map k a -> Map k b
mapMap = (a -> b) -> Map k a -> Map k b
forall a b k. (a -> b) -> Map k a -> Map k b
Map.map

filterMap :: (a -> Bool) -> Map k a -> Map k a
filterMap :: forall a k. (a -> Bool) -> Map k a -> Map k a
filterMap = (a -> Bool) -> Map k a -> Map k a
forall a k. (a -> Bool) -> Map k a -> Map k a
Map.filter

filterText :: (Char -> Bool) -> Text -> Text
filterText :: (Char -> Bool) -> Text -> Text
filterText = (Char -> Bool) -> Text -> Text
T.filter