nested-routes-0.2: Declarative, compositional Wai responses

Safe HaskellNone
LanguageHaskell2010

Web.Routes.Nested.Types

Documentation

class Singleton chunks a trie | chunks a -> trie where Source

Methods

singleton :: chunks -> a -> trie Source

Instances

(Singleton (UrlChunks xs) a trie0, Extend (EitherUrlChunk x) trie0 trie1) => Singleton (UrlChunks ((:) (Maybe *) x xs)) a trie1 Source 
Singleton (UrlChunks ([] (Maybe *))) a (RUPTrie Text a) Source 

class Extend eitherUrlChunk child result | eitherUrlChunk child -> result where Source

Methods

extend :: eitherUrlChunk -> child -> result Source

Instances

Extend (EitherUrlChunk (Just * r)) (RUPTrie Text (r -> a)) (RUPTrie Text a) Source 
Extend (EitherUrlChunk (Nothing *)) (RUPTrie Text a) (RUPTrie Text a) Source 

class Extrude chunks start result | chunks start -> result where Source

Methods

extrude :: chunks -> start -> result Source

Instances

(Extrude (UrlChunks xs) trie0 trie1, Extend (EitherUrlChunk x) trie1 trie2) => Extrude (UrlChunks ((:) (Maybe *) x xs)) trie0 trie2 Source 
Extrude (UrlChunks ([] (Maybe *))) (RUPTrie Text a) (RUPTrie Text a) Source 

iResultToMaybe :: IResult Text r -> Maybe r Source

class ToNE chunks where Source

Methods

toNE :: chunks -> NonEmpty Text Source

Instances

ToNE (UrlChunks ((:) (Maybe *) (Nothing *) ([] (Maybe *)))) Source 
ToNE (UrlChunks xs) => ToNE (UrlChunks ((:) (Maybe *) (Nothing *) xs)) Source 

class ToL chunks where Source

Methods

toL :: chunks -> [Text] Source

Instances

ToL (UrlChunks xs) => ToL (UrlChunks ((:) (Maybe *) (Nothing *) xs)) Source 
ToL (UrlChunks ([] (Maybe *))) Source 

type family ExpectArity xs r :: * Source

Equations

ExpectArity [] r = r 
ExpectArity (Nothing : xs) r = ExpectArity xs r 
ExpectArity (Just x : xs) r = x -> ExpectArity xs r