module Prelude ( module Exports, -- | Custom prelude functions parseInt, headMay, ) where import Control.Monad.Trans.Resource as Exports ( ResourceT, liftResourceT, runResourceT, ) import qualified Data.Text.Read as TR -- Text formatting import Formatting as Exports (format, sformat, (%)) import Formatting.ShortFormatters as Exports (d, sh, st, t) import Network.HTTP.Types as Exports import Network.Wai as Exports import Relude as Exports hiding (get, put) import UnliftIO.Exception as Exports (throwIO) parseInt :: Integral a => Text -> Maybe a parseInt t' = either (const Nothing) (Just . fst) (TR.decimal t') headMay :: [a] -> Maybe a headMay [] = Nothing headMay (a : _) = Just a