yesod-paginator-1.1.0.0: src/Yesod/Paginator/Prelude.hs
{-# LANGUAGE TypeApplications #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
module Yesod.Paginator.Prelude
( module X
, module Yesod.Paginator.Prelude
)
where
import Prelude as X
import Control.Monad as X
import Data.List as X
import Data.Maybe as X
import Data.Semigroup as X ((<>))
import Data.Text as X (Text, pack, unpack)
import Numeric.Natural as X
import Safe as X
import Data.Function (on)
import Web.PathPieces
instance PathPiece Natural where
toPathPiece = toPathPiece @Int . fromIntegral
fromPathPiece p = do
n <- fromPathPiece @Int p
guard $ n >= 0
pure $ fromIntegral n
tshow :: Show a => a -> Text
tshow = pack . show
nubOn :: Eq b => (a -> b) -> [a] -> [a]
nubOn f = nubBy ((==) `on` f)