{-# LANGUAGE DeriveDataTypeable, DeriveGeneric, TemplateHaskell, TypeOperators, OverloadedStrings #-}
module Happstack.Authenticate.OpenId.PartialsURL where

import Data.Data                            (Data, Typeable)
import Control.Category                     ((.), id)
import GHC.Generics                         (Generic)
import Prelude                              hiding ((.), id)
import Text.Boomerang.TH                    (makeBoomerangs)
import Web.Routes                           (PathInfo(..))
import Web.Routes.Boomerang                 (Router, (:-), (<>), boomerangFromPathSegments, boomerangToPathSegments)

data PartialURL
  = UsingYahoo
  | RealmForm
  deriving (PartialURL -> PartialURL -> Bool
(PartialURL -> PartialURL -> Bool)
-> (PartialURL -> PartialURL -> Bool) -> Eq PartialURL
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PartialURL -> PartialURL -> Bool
$c/= :: PartialURL -> PartialURL -> Bool
== :: PartialURL -> PartialURL -> Bool
$c== :: PartialURL -> PartialURL -> Bool
Eq, Eq PartialURL
Eq PartialURL
-> (PartialURL -> PartialURL -> Ordering)
-> (PartialURL -> PartialURL -> Bool)
-> (PartialURL -> PartialURL -> Bool)
-> (PartialURL -> PartialURL -> Bool)
-> (PartialURL -> PartialURL -> Bool)
-> (PartialURL -> PartialURL -> PartialURL)
-> (PartialURL -> PartialURL -> PartialURL)
-> Ord PartialURL
PartialURL -> PartialURL -> Bool
PartialURL -> PartialURL -> Ordering
PartialURL -> PartialURL -> PartialURL
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 :: PartialURL -> PartialURL -> PartialURL
$cmin :: PartialURL -> PartialURL -> PartialURL
max :: PartialURL -> PartialURL -> PartialURL
$cmax :: PartialURL -> PartialURL -> PartialURL
>= :: PartialURL -> PartialURL -> Bool
$c>= :: PartialURL -> PartialURL -> Bool
> :: PartialURL -> PartialURL -> Bool
$c> :: PartialURL -> PartialURL -> Bool
<= :: PartialURL -> PartialURL -> Bool
$c<= :: PartialURL -> PartialURL -> Bool
< :: PartialURL -> PartialURL -> Bool
$c< :: PartialURL -> PartialURL -> Bool
compare :: PartialURL -> PartialURL -> Ordering
$ccompare :: PartialURL -> PartialURL -> Ordering
$cp1Ord :: Eq PartialURL
Ord, Typeable PartialURL
DataType
Constr
Typeable PartialURL
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> PartialURL -> c PartialURL)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c PartialURL)
-> (PartialURL -> Constr)
-> (PartialURL -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c PartialURL))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c PartialURL))
-> ((forall b. Data b => b -> b) -> PartialURL -> PartialURL)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> PartialURL -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> PartialURL -> r)
-> (forall u. (forall d. Data d => d -> u) -> PartialURL -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> PartialURL -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> PartialURL -> m PartialURL)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> PartialURL -> m PartialURL)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> PartialURL -> m PartialURL)
-> Data PartialURL
PartialURL -> DataType
PartialURL -> Constr
(forall b. Data b => b -> b) -> PartialURL -> PartialURL
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PartialURL -> c PartialURL
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PartialURL
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) -> PartialURL -> u
forall u. (forall d. Data d => d -> u) -> PartialURL -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PartialURL -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PartialURL -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> PartialURL -> m PartialURL
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PartialURL -> m PartialURL
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PartialURL
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PartialURL -> c PartialURL
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PartialURL)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PartialURL)
$cRealmForm :: Constr
$cUsingYahoo :: Constr
$tPartialURL :: DataType
gmapMo :: (forall d. Data d => d -> m d) -> PartialURL -> m PartialURL
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PartialURL -> m PartialURL
gmapMp :: (forall d. Data d => d -> m d) -> PartialURL -> m PartialURL
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PartialURL -> m PartialURL
gmapM :: (forall d. Data d => d -> m d) -> PartialURL -> m PartialURL
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> PartialURL -> m PartialURL
gmapQi :: Int -> (forall d. Data d => d -> u) -> PartialURL -> u
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> PartialURL -> u
gmapQ :: (forall d. Data d => d -> u) -> PartialURL -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> PartialURL -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PartialURL -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PartialURL -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PartialURL -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PartialURL -> r
gmapT :: (forall b. Data b => b -> b) -> PartialURL -> PartialURL
$cgmapT :: (forall b. Data b => b -> b) -> PartialURL -> PartialURL
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PartialURL)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PartialURL)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c PartialURL)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PartialURL)
dataTypeOf :: PartialURL -> DataType
$cdataTypeOf :: PartialURL -> DataType
toConstr :: PartialURL -> Constr
$ctoConstr :: PartialURL -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PartialURL
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PartialURL
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PartialURL -> c PartialURL
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PartialURL -> c PartialURL
$cp1Data :: Typeable PartialURL
Data, Typeable, (forall x. PartialURL -> Rep PartialURL x)
-> (forall x. Rep PartialURL x -> PartialURL) -> Generic PartialURL
forall x. Rep PartialURL x -> PartialURL
forall x. PartialURL -> Rep PartialURL x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep PartialURL x -> PartialURL
$cfrom :: forall x. PartialURL -> Rep PartialURL x
Generic, ReadPrec [PartialURL]
ReadPrec PartialURL
Int -> ReadS PartialURL
ReadS [PartialURL]
(Int -> ReadS PartialURL)
-> ReadS [PartialURL]
-> ReadPrec PartialURL
-> ReadPrec [PartialURL]
-> Read PartialURL
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PartialURL]
$creadListPrec :: ReadPrec [PartialURL]
readPrec :: ReadPrec PartialURL
$creadPrec :: ReadPrec PartialURL
readList :: ReadS [PartialURL]
$creadList :: ReadS [PartialURL]
readsPrec :: Int -> ReadS PartialURL
$creadsPrec :: Int -> ReadS PartialURL
Read, Int -> PartialURL -> ShowS
[PartialURL] -> ShowS
PartialURL -> String
(Int -> PartialURL -> ShowS)
-> (PartialURL -> String)
-> ([PartialURL] -> ShowS)
-> Show PartialURL
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PartialURL] -> ShowS
$cshowList :: [PartialURL] -> ShowS
show :: PartialURL -> String
$cshow :: PartialURL -> String
showsPrec :: Int -> PartialURL -> ShowS
$cshowsPrec :: Int -> PartialURL -> ShowS
Show)

makeBoomerangs ''PartialURL

partialURL :: Router () (PartialURL :- ())
partialURL :: Router () (PartialURL :- ())
partialURL =
  (  Boomerang TextsError [Text] (PartialURL :- ()) (PartialURL :- ())
"using-yahoo"          Boomerang TextsError [Text] (PartialURL :- ()) (PartialURL :- ())
-> Router () (PartialURL :- ()) -> Router () (PartialURL :- ())
forall k (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Router () (PartialURL :- ())
forall tok e r. Boomerang e tok r (PartialURL :- r)
rUsingYahoo
  Router () (PartialURL :- ())
-> Router () (PartialURL :- ()) -> Router () (PartialURL :- ())
forall a. Semigroup a => a -> a -> a
<> Boomerang TextsError [Text] (PartialURL :- ()) (PartialURL :- ())
"realm"                Boomerang TextsError [Text] (PartialURL :- ()) (PartialURL :- ())
-> Router () (PartialURL :- ()) -> Router () (PartialURL :- ())
forall k (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Router () (PartialURL :- ())
forall tok e r. Boomerang e tok r (PartialURL :- r)
rRealmForm
  )

instance PathInfo PartialURL where
  fromPathSegments :: URLParser PartialURL
fromPathSegments = Router () (PartialURL :- ()) -> URLParser PartialURL
forall url.
Boomerang TextsError [Text] () (url :- ()) -> URLParser url
boomerangFromPathSegments Router () (PartialURL :- ())
partialURL
  toPathSegments :: PartialURL -> [Text]
toPathSegments   = Router () (PartialURL :- ()) -> PartialURL -> [Text]
forall url.
Boomerang TextsError [Text] () (url :- ()) -> url -> [Text]
boomerangToPathSegments   Router () (PartialURL :- ())
partialURL