{-# LANGUAGE DeriveDataTypeable, TemplateHaskell, TypeFamilies #-}
module Clckwrks.Page.URL where

import Data.Data (Data, Typeable)
import Data.SafeCopy               (SafeCopy(..), base, deriveSafeCopy)
import Clckwrks.Page.Acid          (PageId(..))
import Clckwrks.Page.Types         (Slug(..))
import Web.Routes.TH               (derivePathInfo)

data PageAdminURL
    = EditPage PageId
    | PreviewPage PageId
    | Pages
    | NewPage
    | NewPost
    | EditFeedConfig
      deriving (PageAdminURL -> PageAdminURL -> Bool
(PageAdminURL -> PageAdminURL -> Bool)
-> (PageAdminURL -> PageAdminURL -> Bool) -> Eq PageAdminURL
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PageAdminURL -> PageAdminURL -> Bool
$c/= :: PageAdminURL -> PageAdminURL -> Bool
== :: PageAdminURL -> PageAdminURL -> Bool
$c== :: PageAdminURL -> PageAdminURL -> Bool
Eq, Eq PageAdminURL
Eq PageAdminURL
-> (PageAdminURL -> PageAdminURL -> Ordering)
-> (PageAdminURL -> PageAdminURL -> Bool)
-> (PageAdminURL -> PageAdminURL -> Bool)
-> (PageAdminURL -> PageAdminURL -> Bool)
-> (PageAdminURL -> PageAdminURL -> Bool)
-> (PageAdminURL -> PageAdminURL -> PageAdminURL)
-> (PageAdminURL -> PageAdminURL -> PageAdminURL)
-> Ord PageAdminURL
PageAdminURL -> PageAdminURL -> Bool
PageAdminURL -> PageAdminURL -> Ordering
PageAdminURL -> PageAdminURL -> PageAdminURL
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: PageAdminURL -> PageAdminURL -> PageAdminURL
$cmin :: PageAdminURL -> PageAdminURL -> PageAdminURL
max :: PageAdminURL -> PageAdminURL -> PageAdminURL
$cmax :: PageAdminURL -> PageAdminURL -> PageAdminURL
>= :: PageAdminURL -> PageAdminURL -> Bool
$c>= :: PageAdminURL -> PageAdminURL -> Bool
> :: PageAdminURL -> PageAdminURL -> Bool
$c> :: PageAdminURL -> PageAdminURL -> Bool
<= :: PageAdminURL -> PageAdminURL -> Bool
$c<= :: PageAdminURL -> PageAdminURL -> Bool
< :: PageAdminURL -> PageAdminURL -> Bool
$c< :: PageAdminURL -> PageAdminURL -> Bool
compare :: PageAdminURL -> PageAdminURL -> Ordering
$ccompare :: PageAdminURL -> PageAdminURL -> Ordering
$cp1Ord :: Eq PageAdminURL
Ord, Typeable PageAdminURL
DataType
Constr
Typeable PageAdminURL
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> PageAdminURL -> c PageAdminURL)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c PageAdminURL)
-> (PageAdminURL -> Constr)
-> (PageAdminURL -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c PageAdminURL))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c PageAdminURL))
-> ((forall b. Data b => b -> b) -> PageAdminURL -> PageAdminURL)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> PageAdminURL -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> PageAdminURL -> r)
-> (forall u. (forall d. Data d => d -> u) -> PageAdminURL -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> PageAdminURL -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> PageAdminURL -> m PageAdminURL)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> PageAdminURL -> m PageAdminURL)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> PageAdminURL -> m PageAdminURL)
-> Data PageAdminURL
PageAdminURL -> DataType
PageAdminURL -> Constr
(forall b. Data b => b -> b) -> PageAdminURL -> PageAdminURL
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PageAdminURL -> c PageAdminURL
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PageAdminURL
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> PageAdminURL -> u
forall u. (forall d. Data d => d -> u) -> PageAdminURL -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PageAdminURL -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PageAdminURL -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> PageAdminURL -> m PageAdminURL
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PageAdminURL -> m PageAdminURL
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PageAdminURL
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PageAdminURL -> c PageAdminURL
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PageAdminURL)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PageAdminURL)
$cEditFeedConfig :: Constr
$cNewPost :: Constr
$cNewPage :: Constr
$cPages :: Constr
$cPreviewPage :: Constr
$cEditPage :: Constr
$tPageAdminURL :: DataType
gmapMo :: (forall d. Data d => d -> m d) -> PageAdminURL -> m PageAdminURL
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PageAdminURL -> m PageAdminURL
gmapMp :: (forall d. Data d => d -> m d) -> PageAdminURL -> m PageAdminURL
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PageAdminURL -> m PageAdminURL
gmapM :: (forall d. Data d => d -> m d) -> PageAdminURL -> m PageAdminURL
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> PageAdminURL -> m PageAdminURL
gmapQi :: Int -> (forall d. Data d => d -> u) -> PageAdminURL -> u
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> PageAdminURL -> u
gmapQ :: (forall d. Data d => d -> u) -> PageAdminURL -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> PageAdminURL -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PageAdminURL -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PageAdminURL -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PageAdminURL -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PageAdminURL -> r
gmapT :: (forall b. Data b => b -> b) -> PageAdminURL -> PageAdminURL
$cgmapT :: (forall b. Data b => b -> b) -> PageAdminURL -> PageAdminURL
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PageAdminURL)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PageAdminURL)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c PageAdminURL)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PageAdminURL)
dataTypeOf :: PageAdminURL -> DataType
$cdataTypeOf :: PageAdminURL -> DataType
toConstr :: PageAdminURL -> Constr
$ctoConstr :: PageAdminURL -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PageAdminURL
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PageAdminURL
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PageAdminURL -> c PageAdminURL
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PageAdminURL -> c PageAdminURL
$cp1Data :: Typeable PageAdminURL
Data, Typeable, ReadPrec [PageAdminURL]
ReadPrec PageAdminURL
Int -> ReadS PageAdminURL
ReadS [PageAdminURL]
(Int -> ReadS PageAdminURL)
-> ReadS [PageAdminURL]
-> ReadPrec PageAdminURL
-> ReadPrec [PageAdminURL]
-> Read PageAdminURL
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PageAdminURL]
$creadListPrec :: ReadPrec [PageAdminURL]
readPrec :: ReadPrec PageAdminURL
$creadPrec :: ReadPrec PageAdminURL
readList :: ReadS [PageAdminURL]
$creadList :: ReadS [PageAdminURL]
readsPrec :: Int -> ReadS PageAdminURL
$creadsPrec :: Int -> ReadS PageAdminURL
Read, Int -> PageAdminURL -> ShowS
[PageAdminURL] -> ShowS
PageAdminURL -> String
(Int -> PageAdminURL -> ShowS)
-> (PageAdminURL -> String)
-> ([PageAdminURL] -> ShowS)
-> Show PageAdminURL
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PageAdminURL] -> ShowS
$cshowList :: [PageAdminURL] -> ShowS
show :: PageAdminURL -> String
$cshow :: PageAdminURL -> String
showsPrec :: Int -> PageAdminURL -> ShowS
$cshowsPrec :: Int -> PageAdminURL -> ShowS
Show)
$(deriveSafeCopy 0 'base ''PageAdminURL)
$(derivePathInfo ''PageAdminURL)

data PageURL
    = ViewPage PageId
    | ViewPageSlug PageId Slug
    | Blog
    | AtomFeed
    | PageAdmin PageAdminURL
      deriving (PageURL -> PageURL -> Bool
(PageURL -> PageURL -> Bool)
-> (PageURL -> PageURL -> Bool) -> Eq PageURL
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PageURL -> PageURL -> Bool
$c/= :: PageURL -> PageURL -> Bool
== :: PageURL -> PageURL -> Bool
$c== :: PageURL -> PageURL -> Bool
Eq, Eq PageURL
Eq PageURL
-> (PageURL -> PageURL -> Ordering)
-> (PageURL -> PageURL -> Bool)
-> (PageURL -> PageURL -> Bool)
-> (PageURL -> PageURL -> Bool)
-> (PageURL -> PageURL -> Bool)
-> (PageURL -> PageURL -> PageURL)
-> (PageURL -> PageURL -> PageURL)
-> Ord PageURL
PageURL -> PageURL -> Bool
PageURL -> PageURL -> Ordering
PageURL -> PageURL -> PageURL
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: PageURL -> PageURL -> PageURL
$cmin :: PageURL -> PageURL -> PageURL
max :: PageURL -> PageURL -> PageURL
$cmax :: PageURL -> PageURL -> PageURL
>= :: PageURL -> PageURL -> Bool
$c>= :: PageURL -> PageURL -> Bool
> :: PageURL -> PageURL -> Bool
$c> :: PageURL -> PageURL -> Bool
<= :: PageURL -> PageURL -> Bool
$c<= :: PageURL -> PageURL -> Bool
< :: PageURL -> PageURL -> Bool
$c< :: PageURL -> PageURL -> Bool
compare :: PageURL -> PageURL -> Ordering
$ccompare :: PageURL -> PageURL -> Ordering
$cp1Ord :: Eq PageURL
Ord, Typeable PageURL
DataType
Constr
Typeable PageURL
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> PageURL -> c PageURL)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c PageURL)
-> (PageURL -> Constr)
-> (PageURL -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c PageURL))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PageURL))
-> ((forall b. Data b => b -> b) -> PageURL -> PageURL)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> PageURL -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> PageURL -> r)
-> (forall u. (forall d. Data d => d -> u) -> PageURL -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> PageURL -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> PageURL -> m PageURL)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> PageURL -> m PageURL)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> PageURL -> m PageURL)
-> Data PageURL
PageURL -> DataType
PageURL -> Constr
(forall b. Data b => b -> b) -> PageURL -> PageURL
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PageURL -> c PageURL
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PageURL
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> PageURL -> u
forall u. (forall d. Data d => d -> u) -> PageURL -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PageURL -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PageURL -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> PageURL -> m PageURL
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PageURL -> m PageURL
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PageURL
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PageURL -> c PageURL
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PageURL)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PageURL)
$cPageAdmin :: Constr
$cAtomFeed :: Constr
$cBlog :: Constr
$cViewPageSlug :: Constr
$cViewPage :: Constr
$tPageURL :: DataType
gmapMo :: (forall d. Data d => d -> m d) -> PageURL -> m PageURL
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PageURL -> m PageURL
gmapMp :: (forall d. Data d => d -> m d) -> PageURL -> m PageURL
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PageURL -> m PageURL
gmapM :: (forall d. Data d => d -> m d) -> PageURL -> m PageURL
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> PageURL -> m PageURL
gmapQi :: Int -> (forall d. Data d => d -> u) -> PageURL -> u
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> PageURL -> u
gmapQ :: (forall d. Data d => d -> u) -> PageURL -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> PageURL -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PageURL -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PageURL -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PageURL -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PageURL -> r
gmapT :: (forall b. Data b => b -> b) -> PageURL -> PageURL
$cgmapT :: (forall b. Data b => b -> b) -> PageURL -> PageURL
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PageURL)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PageURL)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c PageURL)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PageURL)
dataTypeOf :: PageURL -> DataType
$cdataTypeOf :: PageURL -> DataType
toConstr :: PageURL -> Constr
$ctoConstr :: PageURL -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PageURL
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PageURL
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PageURL -> c PageURL
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PageURL -> c PageURL
$cp1Data :: Typeable PageURL
Data, Typeable, ReadPrec [PageURL]
ReadPrec PageURL
Int -> ReadS PageURL
ReadS [PageURL]
(Int -> ReadS PageURL)
-> ReadS [PageURL]
-> ReadPrec PageURL
-> ReadPrec [PageURL]
-> Read PageURL
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PageURL]
$creadListPrec :: ReadPrec [PageURL]
readPrec :: ReadPrec PageURL
$creadPrec :: ReadPrec PageURL
readList :: ReadS [PageURL]
$creadList :: ReadS [PageURL]
readsPrec :: Int -> ReadS PageURL
$creadsPrec :: Int -> ReadS PageURL
Read, Int -> PageURL -> ShowS
[PageURL] -> ShowS
PageURL -> String
(Int -> PageURL -> ShowS)
-> (PageURL -> String) -> ([PageURL] -> ShowS) -> Show PageURL
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PageURL] -> ShowS
$cshowList :: [PageURL] -> ShowS
show :: PageURL -> String
$cshow :: PageURL -> String
showsPrec :: Int -> PageURL -> ShowS
$cshowsPrec :: Int -> PageURL -> ShowS
Show)
$(deriveSafeCopy 0 'base ''PageURL)
$(derivePathInfo ''PageURL)