úÎ&Í"Ü$      !"#None!"&(23468=JKM "(kind) pretty print type error of used only >= ghc-7.8 ‡> get (Proxy :: Proxy "b") (mkDict $ add (Proxy :: Proxy "a") "a" emptyStore) Couldn't match type 'Key "b"  with 'NotInDicrionary i  heterogeneous dictionary operation only allowed.%'not elem key' constraint(ghc >= 7.8)"(kind) pretty print type error of . „> add (Proxy :: Proxy "a") 12 $ add (Proxy :: Proxy "a") "a" emptyStore Couldn't match type 'Dictionary  with 'AlreadyHasKey "a"  $#data store to construct dictionary. and  operation only allowed. (kind) key-value pair&O(1) add key value pair to dictionary.9let a = add (Proxy :: Proxy "foo") (12 :: Int) emptyStoreaStore {foo = 12 :: Int}"add (Proxy :: Proxy "bar") "baz" a.Store {bar = "baz" :: [Char], foo = 12 :: Int} O(n) convert Store to  Dictionary.;O(1) (>= ghc-7.8), O(n) (< ghc-7.8) get key from dictionary\let d = mkDict $ add (Proxy :: Proxy "foo") 12 $ add (Proxy :: Proxy "bar") "baz" emptyStoreget (Proxy :: Proxy "foo") d12get (Proxy :: Proxy "bar") d"baz")%&'()*+ ,-.$/0 12 3456789: %&'()*+  ,-.$0/  12 3456789:None(=JK$type family to constraint multi kvs. aMembers ["foo" := Int, "bar" := Double] prms == (Member "foo" Int prms, Member "bar" Double prms);<    ;<None !"(-3HJKMrouter routing pathroot  root == id exact matching pathget one directory as parameter.raw get parameter function%if you want matching exact path, use  for performancedrop any pathestake any pathes as [Text]actionshow path. since v0.6.0.get method. since v0.6.0.  empty router!insert path to router"infix version of !#execute router!=>?@Ainput dictionaryinput path information&output dictionary and path informationBCDEFG pretty printdictionary keyreading functiondictionary keyif Nothing, any method allowedaction when route matchingH I!"#JKL  !"# !"#=>?@ADCBEGFH I!"#JKL! " M      !"#$%&'()*+,- ./0123456789:;<=>?@ABCDEFGHIJKLMNweb-routing-0.6.2Network.Routing.DictNetwork.RoutingNetwork.Routing.Dict.InternalMember GetResultKeyNotInDicrionaryShowDictDict