úÎ1E-¯>      !"#$%&'()*+,-./0123456789:;<=Safe79zA settings option. The option value itself is held as usual in regular application state, not here. What is held here is  functions0 applied to that state to get or set the value.      SafeSafe:Construct an empty section, no options and no subsections. )Construct a section with a single option.!Return >' if this section contains any options, ? otherwise."Return >+ if this section contains any subsections, ? otherwise.#Return >9 if this section is empty (no options, no subsections), ? otherwise.$Return >A if an option or a subsection is present at the specified path, ? otherwise.%Return >0 if an option is present at the specified path, ? otherwise.&Return >3 if a subsection is present at the specified path, ? otherwise.'Return @1 the section or option at the specified path, or A( if this section contains no such path.(Return @& the option at the specified path, or A9 if this section doesn't contain an option at this path.)Return @' the section at the specified path, or A< if this section doesn't contain a subsection at this path.* Alias for +.+œAdd the specified option at the specified path under this section. If the section previously contained an option for this path, the old value is replaced.,£Add the specified subsection at the specified path under this section. If the section previously contained a subsection for this path, the old value is replaced.-qRemove the option at the specified path, if present. If there is a section under this path, it won't be removed..rRemove the section at the specified path, if present. If there is an option under this path, it won't be removed./?Remove the option or section at the specified path, if present. !"#$%&'()*+!Path at which to place the optionOption to insert"Root section under which to insert,%Path at which to place the subsectionSubsection to insert"Root section under which to insertB-./ !"#$%&'()*+,-./ !"#$%&'()*+,-./ !"#$%&'()*+,B-./Safe0MSplit a path string into its components, if it's a valid path syntactically.1Like 02, but allows to choose the escape character (e.g. '\'*) and the path separator character (e.g. C).2~Create a string representation of a path, with the parts separated by periods, and literal periods escaped using backslashes.3Like 22, but allows to choose the escape character (e.g. \\*) and the path separator character (e.g. C).0123012301230123Safe 4TODO5TODO6TODO7TODO8TODO9TODO:TODO;TODO<TODO=TODO 45678DE9:;<= 456789:;<= 456789:;<= 45678DE9:;<=SafeF      !"#$%&'()*+,-./0123456789:;<=>?@ABCDECDFGHIGHJKGHLMNOsetti_1vGnOEBl5Y0CIMvQmdpncYData.Settings.TypesData.Settings.OptionData.Settings.SectionData.Settings.RouteData.Settings.Interface Data.Settings MonadSettings getSettings putSettingsmodifySettingsgetSTree OptionValue readOption showOptiontypeName SettingsError InvalidPath NoSuchOption NoSuchSection NoSuchNodeInvalidValueForType InvalidValueOptRouteOptPathSecNameOptNameSectionsecOptssecSubsOptionoptGetoptSetoptReset mkOptionV mkOptionSempty singletonhasOptshasSubsnullmember memberOpt memberSublookup lookupOpt lookupSubinsert insertOpt insertSub deleteOpt deleteSubdelete parseRoute parseRoute' showRoute showRoute'queryR querySectionR queryOptionR updateOptionR resetOptionRquery querySection queryOption updateOption resetOptionghc-prim GHC.TypesTrueFalsebaseGHC.BaseJustNothing deleteImpl. byPathMaybe byPathEither