V      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU(c) Matthew Peddie 2014BSD3mpeddie@gmail.com experimentalGHCNoneD?Top-level configuration value, corresponding to the libconfig config_t'. Wrapped opaquely for pointer-safety.Corresponds to a  libconfig config_setting_t- value; wrapped opaquely for pointer safety.lThis is used for fine-grained configuration of how integers are output when a config file is written. See M and the  libconfig manual.5This is a set of possible errors that can occur when  libconfig! tries to read in a config file.This function allocates a new  and initializes it. Read in a - from the specified configuration file. The % should already be initialized with . Create a new = and read in the data from the specified configuration file. 7> configNew s = configInit >>= \c -> configReadFile c s Write out a % to the specified configuration file.&Read configuration data from a string.AJust appwinwidth <- configLookup conf "application.window.size.w"configSettingGetInt appwinwidth640>Just miscbigint <- configLookup conf "application.misc.bigint" configSettingGetInt64 miscbigint92233720368547758076Just miscpi <- configLookup conf "application.misc.pi"configSettingGetFloat miscpi 3.141592654=Just listbool <- configLookup conf "application.list.[0].[2]"configSettingGetBool listboolTrue=Just wintitle <- configLookup conf "application.window.title"configSettingGetString wintitle"My Application""configSettingLookupInt winsize "w"Just 640&configSettingLookupInt64 misc "bigint"Just 9223372036854775807"configSettingLookupFloat misc "pi"Just 3.141592654 c(The example configuration file does not contain any boolean values that are direct children of a config_setting_t.)!)Just win <- configLookupFrom app "window"%configSettingLookupString win "title"Just "My Application""BJust treasureqty <- configLookup conf' "application.books.[0].qty"#configSettingSetInt treasureqty 222Just ()configSettingGetInt treasureqty222#?Just miscbigint <- configLookup conf' "application.misc.bigint"2configSettingSetInt64 miscbigint 92233720368547758Just () configSettingGetInt64 miscbigint92233720368547758$FJust treasureprice <- configLookup conf' "application.books.[0].price")configSettingSetFloat treasureprice 22.22Just ()#configSettingGetFloat treasureprice22.22%>Just listbool <- configLookup conf' "application.list.[0].[2]"#configSettingSetBool listbool FalseJust ()configSettingGetBool listboolFalse&HJust treasureauthor <- configLookup conf' "application.books.[0].author";configSettingSetString treasureauthor "Robert L. Stevenson"Just ()%configSettingGetString treasureauthor"Robert L. Stevenson"':Just treasure <- configLookup conf "application.books.[0]""configSettingGetIntElem treasure 35(1Just misc <- configLookup conf "application.misc" configSettingGetInt64Elem misc 19223372036854775807)1Just list <- configLookup conf "application.list" configSettingGetFloatElem list 11.234*q(The example configuration does not contain any boolean values that are direct children of collections of type config_setting_t).+2Just win <- configLookup conf "application.window" configSettingGetStringElem win 0"My Application",*(This example appends a new value of type   to application.listR, because the example file contains no suitable example values for us to modify.)2Just list <- configLookup conf' "application.list"1Just new3 <- configSettingSetIntElem list (-1) 22configSettingGetIntElem list 322configSettingGetInt new322-*(This example appends a new value of type   to application.listR, because the example file contains no suitable example values for us to modify.)2Just list <- configLookup conf' "application.list"BJust new3 <- configSettingSetInt64Elem list (-1) 92233720368547758 configSettingGetInt64Elem list 392233720368547758configSettingGetInt64 new392233720368547758.2Just list <- configLookup conf' "application.list"4Just new1 <- configSettingSetFloatElem list 1 0.2222 configSettingGetFloatElem list 10.2222configSettingGetFloat new10.2222/*(This example appends a new value of type  to application.listR, because the example file contains no suitable example values for us to modify.)2Just list <- configLookup conf' "application.list"5Just new3 <- configSettingSetBoolElem list (-1) FalseconfigSettingGetBoolElem list 3FalseconfigSettingGetBool new3False0>Just misccols <- configLookup conf' "application.misc.columns":Just new0 <- configSettingSetStringElem misccols 0 "butts"%configSettingGetStringElem misccols 0"butts"configSettingGetString new0"butts"1=Just col0 <- configLookup conf "application.misc.columns.[0]"configSettingIndex col0029Just cols <- configLookup conf "application.misc.columns"configSettingLength cols339Just cols <- configLookup conf "application.misc.columns"(Just col0 <- configSettingGetElem cols 0configSettingGetString col0 "Last Name"4/Just miscpi <- configSettingGetMember misc "pi"configSettingGetFloat miscpi 3.14159265453Just misc' <- configLookup conf' "application.misc"=Just randSeed <- configSettingAdd misc' "random_seed" IntTypeconfigSettingSetInt randSeed 55Just ()configSettingGetInt randSeed55*configSettingLookupInt misc' "random_seed"Just 55configSettingGetIntElem misc' 45563Just misc' <- configLookup conf' "application.misc"configSettingLength misc'4#configSettingRemove misc' "bitmask"Just ()configSettingLength misc'373Just misc' <- configLookup conf' "application.misc"configSettingLength misc'4configSettingRemoveElem misc' 2Just ()configSettingLength misc'3)Just new2 <- configSettingGetElem misc' 2configSettingType new2IntTypeconfigSettingGetInt new281318+Just app <- configLookup conf "application"configSettingName appJust "application"9(Just list <- configLookupFrom app "list"configSettingName list Just "list":AJust appwinwidth <- configLookup conf "application.window.size.w""configSettingGetFormat appwinwidth DefaultFormat;CJust appwinwidth' <- configLookup conf' "application.window.size.w"#configSettingGetFormat appwinwidth' DefaultFormat-configSettingSetFormat appwinwidth' HexFormatJust ()#configSettingGetFormat appwinwidth' HexFormat<0configLookupInt conf "application.window.size.w"Just 640=0configLookupInt64 conf "application.misc.bigint"Just 9223372036854775807>,configLookupFloat conf "application.misc.pi"Just 3.141592654?0configLookupBool conf "application.list.[0].[2]" Just True@2configLookupString conf "application.window.title"Just "My Application"A1Just list <- configLookup conf "application.list"configSettingType listListTypeB2Just grp <- configLookup conf "application.window"configSettingIsGroup grpTrueC8Just arr <- configLookup conf "application.misc.columns"configSettingIsArray arrTrueD1Just list <- configLookup conf "application.list"configSettingIsList listTrueE2Just grp <- configLookup conf "application.window"8Just arr <- configLookup conf "application.misc.columns"1Just list <- configLookup conf "application.list";Just width <- configLookup conf "application.window.size.w"5mapM configSettingIsAggregate [grp, arr, list, width][True,True,True,False]F8Just int <- configLookup conf "application.window.pos.x":Just bigint <- configLookup conf "application.misc.bigint"5Just float <- configLookup conf "application.misc.pi"2Just grp <- configLookup conf "application.window"4mapM configSettingIsNumber [int, bigint, float, grp][True,True,True,False]G8Just int <- configLookup conf "application.window.pos.x":Just bigint <- configLookup conf "application.misc.bigint"5Just float <- configLookup conf "application.misc.pi"9Just bool <- configLookup conf "application.list.[0].[2]"8Just str <- configLookup conf "application.window.title"2Just grp <- configLookup conf "application.window"?mapM configSettingIsScalar [int, bigint, float, bool, str, grp] [True,True,True,True,True,False]H1Just list <- configLookup conf "application.list"configSettingName list Just "list"6Just list1 <- configLookup conf "application.list.[0]"configSettingName list1NothingI1Just list <- configLookup conf "application.list"$Just app <- configSettingParent listconfigSettingName appJust "application"JconfigSettingIsRoot appFalse#Just root <- configRootSetting confconfigSettingIsRoot rootTrueK#Just root <- configRootSetting conf5Just version <- configSettingGetMember root "version"configSettingGetString version"1.0"LconfigGetDefaultFormat conf' DefaultFormat&configSetDefaultFormat conf' HexFormatconfigGetDefaultFormat conf' HexFormatMconfigGetDefaultFormat conf DefaultFormatNconfigGetTabWidth conf'2configSetTabWidth conf' 8configGetTabWidth conf'8OconfigGetTabWidth conf2PconfigSettingSourceLine app5QconfigSettingSourceFile app"test/test.conf"VThis is a set of possible  libconfig% types. Many functions will return W@ if you attempt to use a value as the incorrect type. See the  libconfig manual for more details.XYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVV  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV  !"#$%&'()*+,-./089<=>?@1234567HIJKPQML:;ONRSTUABDCEFGXYZ [\]^_`abcdefghij klmnopqrstu{zyxwv|}~   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]]^_`abcdefghijkklmnopqrstuvwxyz{||}~libconfig-0.1.0.0Language.Libconfig ConfigurationSetting ConfigFormat HexFormat DefaultFormat ConfigTypeListType ArrayTypeBoolType StringType FloatType Int64TypeIntType GroupTypeNoneType ConfigErrConfigErrParseConfigErrFileIo ConfigErrNone configInitconfigReadFile configNewconfigWriteFileconfigReadStringconfigSettingGetIntconfigSettingGetInt64configSettingGetFloatconfigSettingGetBoolconfigSettingGetStringconfigSettingLookupIntconfigSettingLookupInt64configSettingLookupFloatconfigSettingLookupBoolconfigSettingLookupStringconfigSettingSetIntconfigSettingSetInt64configSettingSetFloatconfigSettingSetBoolconfigSettingSetStringconfigSettingGetIntElemconfigSettingGetInt64ElemconfigSettingGetFloatElemconfigSettingGetBoolElemconfigSettingGetStringElemconfigSettingSetIntElemconfigSettingSetInt64ElemconfigSettingSetFloatElemconfigSettingSetBoolElemconfigSettingSetStringElemconfigSettingIndexconfigSettingLengthconfigSettingGetElemconfigSettingGetMemberconfigSettingAddconfigSettingRemoveconfigSettingRemoveElem configLookupconfigLookupFromconfigSettingGetFormatconfigSettingSetFormatconfigLookupIntconfigLookupInt64configLookupFloatconfigLookupBoolconfigLookupStringconfigSettingTypeconfigSettingIsGroupconfigSettingIsArrayconfigSettingIsListconfigSettingIsAggregateconfigSettingIsNumberconfigSettingIsScalarconfigSettingNameconfigSettingParentconfigSettingIsRootconfigRootSettingconfigSetDefaultFormatconfigGetDefaultFormatconfigSetTabWidthconfigGetTabWidthconfigSettingSourceLineconfigSettingSourceFileconfigErrorFileconfigErrorTextconfigErrorLineconfigErrorType$fEnumConfigErrbase Data.MaybeNothinggetConfigurationConfig root'Configdestructor'Config flags'Configtab_width'Configdefault_format'Configinclude_dir'Configerror_text'Configerror_file'Configerror_line'Configerror_type'Configfilenames'Confignum_filenames'Config getSettingSetting' name'Setting type'Settingformat'Setting value'Settingparent'Settingconfig'Setting hook'Setting line'Setting file'Setting ConfigValueNoneListSValFValLLValIVal ConfigListlength'ConfigListelements'ConfigList ConfigPtr SettingPtr ConfigListPtr ConfigBool ConfigTrue ConfigFalseconfigSettingSetFormat'_configSettingGetFormat'_configLookupString''_configLookupBool''_configLookupFloat''_configLookupInt64''_configLookupInt''_configLookupFrom'_configLookup'_configSettingRemoveElem'_configSettingRemove'_configSettingAdd'_configSettingGetMember'_configSettingGetElem'_configSettingLength'_configSettingIndex'_configSettingSetStringElem'_configSettingSetBoolElem'_configSettingSetFloatElem'_configSettingSetInt64Elem'_configSettingSetIntElem'_configSettingGetStringElem'_configSettingGetBoolElem'_configSettingGetFloatElem'_configSettingGetInt64Elem'_configSettingGetIntElem'_configSettingSetString'_configSettingSetBool'_configSettingSetFloat'_configSettingSetInt64'_configSettingSetInt'_configSettingLookupString''_configSettingLookupBool''_configSettingLookupFloat''_configSettingLookupInt64''_configSettingLookupInt''_configSettingGetString'_configSettingGetBool'_configSettingGetFloat'_configSettingGetInt64'_configSettingGetInt'_configReadString'_configWriteFile'_configReadFile'_configDestroy' configInit'fromEnumIntegraltoEnumIntegralconfigValueTypepeekConfigValuepokeConfigValuewithConfigurationmodifyConfigurationonConfigurationcheckPtr checkSetting peekIntegral peekFloatpeekBool peekStringasBool checkBool checkTupleconfigSettingLookupInt'configSettingLookupInt64'configSettingLookupFloat'configSettingLookupBool'configSettingLookupString'configLookupInt'configLookupInt64'configLookupFloat'configLookupBool'configLookupString'$fStorableConfig$fStorableSetting'$fStorableConfigList