h$82      !"#$%&'()*+,-./0123456789:;<= > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` abcdefghijklmnopqrstuvwxyz{|}~None* &(-./235678;<=>?ema The format of a generated asset.ema9Html assets are served by the live server with hot-reloadema;Other assets are served by the live server as static files.ema8The type of assets that can be bundled in a static site.ema6A file that is copied as-is from the source directory.Relative paths are assumed relative to the source directory. Absolute paths allow copying static files outside of source directory.ema? emaCLI subcommandemaGenerate static files at the given output directory, returning the list of generated files.emaRun the live serverema#Host string to start the server on.ema$Ema's command-line interface options emaThe Ema action to run!emaLogging verbosity&ema+Parse Ema CLI arguments passed by the user.(ema.Crash the program with the given error message=First log the message using Error level, and then exit using . !"#$%&'(" !#$%&'(None) &(-./235678;<=>? w-emaA time-varying value of type a, changing under monad m. To create a -, supply the initial value along with a function that forever updates it using the given monadic update function.-'s can be composed using .-.-.None* &(-./235678;<=>? 1ema VerifyRoutes route rep subroutes verifies the given route% to ensure that there exists a valid  HasSubRoutes instance for route given its rep and the  subroutes it is generic-deriving from.Invariant: code ~ Code route2ema&VerifyModels model routeModels lookups verifies the given model% to ensure that there exists a valid  HasSubModels instance for the given combination of (model, routeModels, lookups).1221None) &(-./235678;<=>?3emaIsomorphic to  Prism' s a, but coercion-friendly.Use 4 and 5 to convert between the optics Prism' and this Prism_.4ema Convert a 3 to a Prism'.5ema Convert a Prism' to a 3.6emamap over the filepath, route and model of the given route prism.6emaHow to transform the encoded ema!How to transform the decode routeema0How to transform (contramap) the resultant modelemaThe route prism to fmap.34563456None) &(-./235678;<=>?r7887None) &(-./235678;<=>?x<emaReturns a new route 3, that supports *either* of the input routes.The resulting route 38's model type becomes the *product* of the input models. 3456789:;<<;9: None) &(-./235678;<=>?=emaClass of Ema routesAn Ema route has a Prism' ?, that knows how to convert it to/from filepaths. As well as an universe function, @:, that gives all possible route values in a static site.Both functions take the associated model, `RouteModel r`, as an argument.?ema An optics Prism0` that denotes how to encode and decode a route.@ema(All possible route values for the given >.=This is used in determining the pages to statically generate.=>?@=>?@ None) &(-./235678;<=>?BemaA type-level singleton route, whose encoding is given by the symbol parameter.+FileRoute "foo.html" encodes to "foo.html".'TODO: Can this type be simplified? See *https://stackoverflow.com/q/72755053/55246BCBC None) &(-./235678;<=>?8Iema8Route to a file that is associated with a value of type a.A route to foobar$qux.md, for instance, is encoded as foo(bar/qux. ie., the extension is dropped.IJIJ None* &(-./0235678;<=>?Pema$How to produce URL paths from routesQema(Use pretty URLs. The route encoding "foobar.html" produces "foo bar" as URL.Rema.Use filepaths as URLs. The route encoding "foobar.html" produces "foobar.html" as URL.Sema*Return the relative URL of the given route?[emaLike \ but ^ is a bytestring .\ema$Typeclass to orchestrate an Ema siteGiven a route r from the class of = types, instantiating EmaSite on it enables defining the site build pipeline as follows:  SiteArg -> siteInput -> Dynamic model --[r, model]--> siteOutput ] is typically not used, but it can be used to pass command line arguments and other such settings._ returns a time-varying value (Dynamic) representing the data for your static site.` takes this data model (oneshot value) and returns the generated content (usually HTML asset, per ^) for the given route.)Finally, `Ema.App.runSite @r arg` (where arg is of type ]) is run from the main" entry point to run your Ema site.]ema] is typically settings from the environment (config file, or command-line arguments) that your Dynamic-producing _# function consumes as argument.^emaType of the value returned by `6. Usually `Asset LByteString` but it can be anything._ema(Get the model's time-varying value as a -.'If your model is not time-varying, use  to produce a constant value.`ema Return the output (typically an  ) for the given route and model._ema&The value passed by the programmer to emaTime-varying value of the model. If your model is not time-varying, use  to produce a constant value.[\]^_`\]^_`[None/ #$&(-./235678;<=>?#gema4A basic error response for displaying in the browseriemaReturn the equivalent of WAI's pathInfo, from the raw path string (`document.location.pathname`) the browser sends us.abedcfghijklmnfghijabedcklmnNone) &(-./235678;<=>?qema7The merged site's route is represented as a n-ary sum () of the sub-routes.pqqpNone) &(-./235678;<=>? vema+A route that is prefixed at some URL prefixyema-Prefix the encoding of the given route prism.vwxyvwxyNone+ &(-./235678:;<=>?"RemaGenerate the static site at destThe *only* data we need is the >.emaLike ) but without buffering or error handling.ema/Target directory to write files to. Must exist.ema'The model data used to generate assets.emaList of generated files.None* &(-./235678;<=>?$emaRun the given Ema site,!Takes as argument the associated ].In generate mode, return the generated files. In live-server mode, this function will never return.emaLike runSite but discards the resultemaLike runSite9 but takes the CLI action. Also returns more information.6Useful if you are handling the CLI arguments yourself.Use "void $ Ema.runSiteWithCli def ..." if you are running live-server only.ema!The input required to create the - of the >None) &(-./235678;<=>?%. -.45=@>?>PRQSU[\`_]^]^g-.45=@>?PRQSU[\`_]^gNone* &(-./235678:;<=>?&vemaRoute to a static file under baseDir.emaLike U, but looks up the value and appends it to URL in live-server (for force-reload in browser)None* &(-./235678;<=>?'lema=Like TypeError but suitable for use in type-classes to avoid cf. *https://stackoverflow.com/a/72783230/55246None+ &(-./235678;<=>?(emaLike  but for Route types only.None- &(-./2356789;<=>?)ema subRoutes are valid sub-routes of remaHasSubRoutes is a class of routes with an underlying MultiRoute (and MultiModel) representation.The idea is that by deriving HasSubRoutes (and HasSubModels), we get IsRoute for free (based on MultiRoute).+TODO: Rename this class, or change the API.emaThe sub-routes in the r (for each constructor).None+ &(-./235678;<=>?*emaBreak the model into a list of sub-models used correspondingly by the sub-routes.None, &(-./235678:;<=>?/emaTypeclass to control  behaviour.The FooM type enables users to define their type optionally, whose default is specified in the Foo type family (further below).-You can define your own options, for example:  data MySubRoutes instance GenericRouteOpt r MySubRoutes where type OptSubRoutesM r MySubRoutes = 'Just (GSubRoutes (RDatatypeName r) (RConstructorNames r) (RCode r)) And use it as: 2deriving via (GenericRoute MyRoute '[MySubRoutes])ema Specify the  Data.Generics.Product.Any.HasAny selector type for sub modelsNote: if the selector is a Symbol you must wrap it in a Proxy.emaSpecify isomorphic types to delegate sub-route behaviour. Usually this is identical to the route product type. The isomorphism is specified by  Coercible. The default implementation uses  FileRoute for terminal routes, and  FolderRoute (with constructor prefix stripped) for wrapping sub-routes types.ema.Associate the route with the given model type. Default: ()ema'DerivingVia type to generically derive =BCvwBCvwNone+ &(-./235678;<=>?1ema#deriveIsRoute route model subroutes derives , , and = for the given route.Subroutes are optionally supplied, but if they are then the length of the list must be the same as the number of constructors in route.)TODO: Add TypeErrors to catch mismatched + list shapes at the generic deriving level?BCvwNone+ &(-./235678:;<=>?2ema=Represents the relative path to a file that pandoc can parse. !"#$%&'()*+,-./01123456789:;;<=>?@ABCDEFGHIIJKLMNOPQRSTUVW X Y Z [ \ ] ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z{{|}~"ema-0.8.0.0-5bg2bjbHL6CHBpkm3ElH3LEma.Route.Generic.TH Ema.AssetEma.CLI Ema.DynamicEma.Route.Generic.VerificationEma.Route.Prism.TypeEma.Route.Prism.CheckEma.Route.PrismEma.Route.ClassEma.Route.Lib.FileEma.Route.Lib.Extra.SlugRoute Ema.Route.UrlEma.Site Ema.ServerEma.Route.Lib.MultiEma.Route.Lib.Folder Ema.GenerateEma.AppEma.Route.Lib.Extra.StaticRouteEma.Route.Generic.RGenericEma.Route.Generic.SubRouteEma.Route.Generic.SubModelEma.Route.GenericEma.Route.Lib.Extra.PandocRouterunSiteEmaGHC.TypeLits.Extra+generics-sop-0.5.1.2-HBDnlDhUv2QJzEDtg4b2xaGenerics.SOP.TH deriveGenericFormatHtmlOtherAsset AssetStaticAssetGenerated $fEqAsset $fShowAsset $fOrdAsset$fFunctorAsset$fGenericAsset $fEqFormat $fShowFormat $fOrdFormat$fGenericFormatActionGenerateRunHostunHost $fDefaultHost$fEqHost $fShowHost $fOrdHost$fIsStringHost$fGEqTYPEAction$fGShowTYPEAction$fGCompareTYPEActionCliactionverbose isLiveServer cliParser hostParser portParser cliAction getLoggercrash$fArgDictTYPEcAction $fDefaultCli$fEqCli $fShowCliDynamic$fApplicativeDynamic$fFunctorDynamic VerifyRoutes VerifyModelsPrism_ fromPrism_toPrism_ mapRoutePrismcheckRoutePrismGivenRoutecheckRoutePrismGivenFilePath stringIso showReadPrismhtmlSuffixPrismeitherRoutePrismIsRoute RouteModel routePrism routeUniverse $fIsRoute() FileRoute$fIsRouteFileRoute $fEqFileRoute$fOrdFileRoute$fShowFileRoute$fGenericFileRoute SlugRoute mkSlugRoute$fIsRouteSlugRoute $fEqSlugRoute$fOrdSlugRoute$fShowSlugRoute$fGenericSlugRoute UrlStrategy UrlPretty UrlDirect routeUrlWith urlToFilePathrouteUrl$fFromJSONUrlStrategy$fEqUrlStrategy$fShowUrlStrategy$fOrdUrlStrategy$fGenericUrlStrategy EmaStaticSiteEmaSiteSiteArg SiteOutput siteInput siteOutputBadRouteEncoding_bre_urlFilePath_bre_decodedRoute _bre_checkLogrunServerWithWebSocketHotReloademaErrorHtmlResponsemkHtmlErrorMsgpathInfoFromWsMsgdecodeRouteNothingMsgbadRouteEncodingMsg wsClientHtmlwsClientJSShim wsClientJS$fShowBadRouteEncoding MultiModel MultiRoute $fEmaSiteNS $fIsRouteNS $fIsRouteNS0 $fEmaSiteNS0 FolderRoute unFolderRouteprefixRoutePrism$fEmaSiteFolderRoute$fIsRouteFolderRoute$fShowFolderRoute$fEqFolderRoute$fOrdFolderRoute$fGenericFolderRoutegenerateSiteFromModelgenerateSiteFromModel'$fShowStaticAssetMissing$fExceptionStaticAssetMissingrunSite_runSiteWithCliModelmodelCliAction modelFiles StaticRoutestaticRouteUrl$fEmaSiteStaticRoute$fIsRouteStaticRoute$fEqMissingStaticFile$fShowMissingStaticFile$fExceptionMissingStaticFile $fEqModel $fShowModel$fGenericModel$fEqStaticRoute$fOrdStaticRoute$fShowStaticRoute$fGenericStaticRouteRHasDatatypeInfo RDatatypeNameRConstructorNamesRGenericRCoderfromrto $fRGeneric'[]$fRHasDatatypeInfor $fRouteNP: $fRouteNP:0 $fRouteNP[] $fRGeneric': $fRGenericr GSubRoutesValidSubRoutes HasSubRoutes SubRoutes subRoutesIso gtoSubRoutesgfromSubRoutes GSubModels gsubModels HasSubModels subModels$fHasAnyTYPEProxystab$fHasAnyTYPE()ss()()$fGSubModelskm::$fGSubModelskm[][]GenericRouteOpt OptModelM OptSubRoutesM OptSubModelsM WithSubModels WithSubRoutes WithModel GenericRoute$fGenericRouteOptrWithSubModels$fGenericRouteOptrWithSubRoutes$fGenericRouteOptrWithModel$fIsRouteGenericRoute$fHasSubModelsGenericRoute$fHasSubRoutesTYPEGenericRoute$fGenericGenericRoute deriveIsRoute PandocHtml unPandocHtml PandocErrorPandocError_MissingPandocError_RenderErrorArg argBaseDir argFormats argReaderOpts argWriterOptsmodelArg modelPandocs PandocRoute unPandocRoute mkPandocRoutelookupPandocRoute $fDefaultArg$fIsStringPandocRoute$fHasSubModelsPandocRoute$fEmaSitePandocRoute$fEqUnsupportedPandocFormat$fShowUnsupportedPandocFormat"$fExceptionUnsupportedPandocFormat$fEqPandocHtml$fGenericPandocHtml$fEqPandocError$fShowPandocError$fExceptionPandocError$fEqPandocRoute$fOrdPandocRoute$fShowPandocRoute$fGenericPandocRoute$fGenericPandocRoute0$fHasDatatypeInfoPandocRoute$fHasSubRoutesTYPEPandocRoute$fIsRoutePandocRoute $fGenericArgbaseControl.Monad.FailfailGHC.Base ApplicativeGHC.IOFilePathGHC.Real/pure'sop-core-0.5.0.2-JiJuIvMQflQ495Q0ZwTtHX Data.SOP.NSNSTypeErr%relude-1.1.0.0-Ihbquq45Lsc4vpoZEXvHyu Relude.Debug undefined Impossible impossibleGenerics.SOP.UniverseGeneric