(C) 2015 Richard Wallace BSD-style (see the file LICENSE)-Richard Wallace <rwallace@thewallacepack.net> provisionalNone (2346=JKT The simplest Path is the root path, which is equivalent to /.Other routes can be built with  /: <docsPath = "package" </> "webcrank-dispatch-0.1" </> "docs" DPaths can contain parameters. To create a parameterized path, use param as a path component: EdocsPath :: Path '[String] docsPath = "package" </> param </> "docs" @Paths can contain as many parameters of varying types as needed: wat :: Path '[String, Int, Bool, Int, String] wat :: "this" </> param </> param </> "crazyness" </> param </> "ends" </> param </> param ;Path parameters can be of any type that have instances for   and  .Paths can be rendered using  and .renderPath root params["/"]4renderPath docsPath $ params "webcrank-dispatch-0.1",["package", "webcrank-dispatch-0.1", "docs"]<renderPath wat $ params "down is up" 42 False 7 "up is down"M["this", "down is up", "42", "crazyness", "False", "ends", "7", "up is down"]5Note in the last example that no encoding is done by  renderPath. An elementary  can be built using  . disp = root ==> "Dispatched" Dispatcher s form a  5, so more interesting dispatchers can be built with  or . 2disp = mconcat [ root ==> "Welcome!" , "echo"  / param ==> id ] "Dispatching requests is done with  . It turns a  DispatcherO into a function from a list of decoded path components to a possible handler.#dispatch (root ==> "Welcome!") [""]Just "Welcome!"3dispatch (root ==> "Welcome!") ["echo", "Goodbye!"]NothingNdispatch (root ==> "Welcome!" <> "echo" </> param ==> id) ["echo", "Goodbye!"]Just "Goodbye!"            !"webcrank-dispatch-0.1Webcrank.Dispatchreroute-0.2.2.1Web.Routing.SafeRoutingPath DispatcherHBuild'hBuild'rootparam renderPathparams==>dispatchbaseData.Typeable.InternalTypeablepath-pieces-0.2.0Web.PathPieces PathPiece Data.MonoidMonoid<>mconcat SafeRouter SafeRouterRegSafeRouterPathTFCo:R:RegistrySafeRouterTFCo:R:RoutePathSafeRouterxs$fAbstractRouterSafeRouter$fMonoidDispatcher$fHBuild'l(->)$fHBuild'lHVect