úÎé     None   None &'(3=HKM!"#$%None&(23468=JKM$type family to constraint multi kvs. aMembers ["foo" := Int, "bar" := Double] prms == (Member "foo" Int prms, Member "bar" Double prms)%'not elem key' constraint(ghc >= 7.8)&+result type for pretty printing type error.heterogeneous dictionary(kind) key-value pairempty dictionary!add key value pair to dictionary.4let a = add (Proxy :: Proxy "foo") (12 :: Int) emptyaDict {foo = 12 :: Int}"add (Proxy :: Proxy "bar") "baz" a-Dict {bar = "baz" :: [Char], foo = 12 :: Int} get key from dictionaryNlet d = add (Proxy :: Proxy "foo") 12 $ add (Proxy :: Proxy "bar") "baz" emptyget (Proxy :: Proxy "foo") d12get (Proxy :: Proxy "bar") d"baz"'()&*+,-. /012345   '()&+*,-. /012345None !"(-3HJKM router  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]action empty routerinsert path to routerinfix version of execute router 6789: input dictionaryinput path information&output dictionary and path information ;<=>?@  pretty printdictionary keyreading functiondictionary keyif Nothing, any method allowedaction when route matchingABCDE     6789: =<;>@? ABCDE  F        !"#$%&$%'$%($)*$)*+,-./01 23456789:;<=>?@ABCDEFGHIweb-routing-0.1.1Network.Routing.DictNetwork.RoutingNetwork.Routing.TreeNetwork.Routing.CompatMembersMember