h$$n"}      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_(c) Mateusz Koczko, 2016MITmateusz.p.kloczko@gmail.com experimentalGHC-onlyNonederive-storable-pluginGet ids from core bind.derive-storable-plugin#Get all expressions from a binding.derive-storable-plugin4Get both identifiers and expressions from a binding.derive-storable-pluginGet all IDs from CoreExprderive-storable-plugin'Takes first n characters out of occNamederive-storable-pluginEquality for typesderive-storable-pluginEquality for type bindersderive-storable-plugin` function for types   (c) Mateusz Koczko, 2016MITmateusz.p.kloczko@gmail.com experimentalGHC-onlyNone derive-storable-pluginAll possible errors. derive-storable-plugin&Could not obtain the type from the id. derive-storable-plugin2The binding is recursive and won't be substituted.derive-storable-pluginThe compilation-substitution is not supported for the given binding.derive-storable-plugin9Error during compilation. The CoreBind is to be returned.derive-storable-plugin"Ordering failed for core bindings.derive-storable-pluginOrdering failed for typesderive-storable-pluginAny other error.derive-storable-pluginContains user-specified flags.derive-storable-plugin=Crash when an recoverable error occurs. For testing purposes.derive-storable-plugin#How verbose should the messages be.derive-storable-plugin+Print an error according to verbosity flag.derive-storable-pluginChange String to SDoc. Each newline is $$ed with nest equal to spaces before. t is 4.    (c) Mateusz Koczko, 2016MITmateusz.p.kloczko@gmail.com experimentalGHC-onlyNonederive-storable-plugin7Predicate used to find GStorable instances identifiers.derive-storable-plugin*Predicate used to find gsizeOf identifiersderive-storable-plugin-Predicate used to find galignment identifiersderive-storable-plugin/Predicate used to find gpeekByteOff identifiers derive-storable-plugin/Predicate used to find gpeekByteOff identifiers!derive-storable-plugin+Predicate used to find chSizeOf identifiers"derive-storable-plugin.Predicate used to find chAlignment identifiers#derive-storable-plugin0Predicate used to find chPeekByteOff identifiers$derive-storable-plugin0Predicate used to find chPokeByteOff identifiers%derive-storable-pluginPredicate used to find specialized GStorable instance identifiers&derive-storable-plugin6Predicate used to find specialized gsizeOf identifiers'derive-storable-plugin9Predicate used to find specialized galignment identifiers(derive-storable-plugin;Predicate used to find specialized gpeekByteOff identifiers)derive-storable-plugin;Predicate used to find specialized gpokeByteOff identifiers*derive-storable-pluginIs offsets id.+derive-storable-pluginIs a GStorable identifier,derive-storable-pluginIs the id an GStorable method.-derive-storable-plugin"Check if binding is non-recursive..derive-storable-plugin8Lift the identifier predicate to work on a core binding./derive-storable-pluginUse both type getters and identifier predicate to create a predicate. !"#$%&'()*+,-./ %&'()!"#$*+,-./(c) Mateusz Koczko, 2016MITmateusz.p.kloczko@gmail.com experimentalGHC-onlyNonek0derive-storable-plugin!Check whether the type is integer1derive-storable-plugin#Check whether the type is a Pointer2derive-storable-pluginCheck whether the type is a IO.3derive-storable-plugin,Check whether the type constructor is an IO.4derive-storable-plugin"Check whether the type is a State#5derive-storable-plugin.Check whether the type constructor is a State#6derive-storable-plugin&Check whether the type is a RealWorld#7derive-storable-plugin2Check whether the type constructor is a RealWorld#8derive-storable-plugin0Check whether the type constuctor is a GStorable9derive-storable-plugin2Check whether the type is of kind * -> Constraint.:derive-storable-plugin1Check whether the type has GStorable constraints.;derive-storable-plugin%Get the type from GStorable instance.<derive-storable-plugin,Get the type from GStorable alignment method=derive-storable-plugin)Get the type from GStorable sizeOf method>derive-storable-plugin'Get the type from GStorable peek method?derive-storable-plugin'Get the type from GStorable poke method@derive-storable-plugin-Get the type of Offsets. Assuming it is [Int]Aderive-storable-plugin/Combination of type getters for all GStorables.Bderive-storable-plugin2Combination of type getters for GStorable methods.0123456789:;<=>?@AB0123456789:;<=>?@AB(c) Mateusz Koczko, 2016MITmateusz.p.kloczko@gmail.com experimentalGHC-onlyNonewCderive-storable-pluginCalculate the order of types. Dderive-storable-plugin'Functions doing the type substitutions.Ederive-storable-plugin6Get data constructor arguments from an algebraic type.Fderive-storable-plugin(Group bindings according to type groups.Fderive-storable-plugin Type groups.derive-storable-pluginShould be only NonRecs. CDEFCDEF(c) Mateusz Koczko, 2016MITmateusz.p.kloczko@gmail.com experimentalGHC-onlyNonelGderive-storable-plugin(Scoped variables for optimising offsets.Jderive-storable-pluginCompile an expression.Kderive-storable-plugin6Try to compile an expression. Perhaps return an error.Lderive-storable-plugin%Create an expression of form: x -> 16Mderive-storable-plugin5For gsizeOf and galignment - calculate the variables.Nderive-storable-pluginTry to substitute the offsets.Oderive-storable-pluginGet a from GPderive-storable-pluginGet b from GQderive-storable-plugin+Create a list expression from Haskell list.Rderive-storable-plugin?Compile expression to list and then write it back to core expr.Sderive-storable-plugin2Return the expression if it's a literal or global.Tderive-storable-pluginCheck whether the given CoreExpr is an id, and if yes - substitute it.Uderive-storable-pluginIs an "$w!!" identifierVderive-storable-pluginTry to create a compileable version of case expr body. For !! @Int offsets val expressions.Wderive-storable-pluginSubstitute the offsets in a tree. All top-level local ids should be alread in place. Now try to compile selected expressions (See note [Offset substitution])Xderive-storable-plugin3Compile the expression in Core Bind and replace it.Yderive-storable-pluginLint a bindingZderive-storable-pluginSubstitutes the localIds inside the bindings with bodies of provided bindings.[derive-storable-pluginCompile ordered binding.Yderive-storable-plugin3Core binding to use when returning CompilationErrorderive-storable-pluginCore binding to checkderive-storable-pluginSuccess or failureZderive-storable-plugin%Replace with - for GStorable bindingsderive-storable-plugin%Replace with - for other top-bindingsderive-storable-plugin%Binding which will have ids replaced.derive-storable-pluginBinding with replaced ids.[derive-storable-pluginError handling.derive-storable-pluginOrdered gstorable bindings.derive-storable-plugin/Non-gstorable bindings, used for replacing ids.derive-storable-pluginThe compiled (or not) bindings.GHIJKLMNOPQRSTUVWXYZ[JKLMNWGHIOPQRSTUVXYZ[(c) Mateusz Koczko, 2016MITmateusz.p.kloczko@gmail.com experimentalGHC-onlyNone!]derive-storable-pluginFind GStorable identifiers, obtain their types, and calculate the order of compilation.^derive-storable-plugin+Do the optimisation for GStorable bindings.^derive-storable-pluginVerbosity and ToCrash options.derive-storable-pluginReference to grouped types.derive-storable-plugin"Information about compiled module.derive-storable-pluginInformation about compiled module, with GStorable optimisations.]^]^(c) Mateusz Koczko, 2016MITmateusz.p.kloczko@gmail.com experimentalGHC-onlyNone"w_derive-storable-pluginThe plugin itself.__      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmkno5derive-storable-plugin-0.2.3.4-DgwVV8DrcmhDY62ttxMrUw0Foreign.Storable.Generic.Plugin.Internal.Helpers.Foreign.Storable.Generic.Plugin.Internal.Error3Foreign.Storable.Generic.Plugin.Internal.Predicates.Foreign.Storable.Generic.Plugin.Internal.Types3Foreign.Storable.Generic.Plugin.Internal.GroupTypes0Foreign.Storable.Generic.Plugin.Internal.Compile(Foreign.Storable.Generic.Plugin.InternalForeign.Storable.Generic.Plugin getIdsBind getExprsBindgetIdsExprsBind getIdsExpr cutOccNameeqTypeeqTyBind eqTyVarBindelemTypeisProxy removeProxyError TypeNotFound RecBindingCompilationNotSupportedCompilationErrorOrderingFailedBindsOrderingFailedTypes OtherErrorFlagsCrashOnWarning VerbosityNoneSomeAllpprError stringToPprisGStorableInstId isSizeOfId isAlignmentIdisPeekIdisPokeIdisChoiceSizeOfIdisChoiceAlignmentIdisChoicePeekIdisChoicePokeIdisSpecGStorableInstIdisSpecSizeOfIdisSpecAlignmentId isSpecPeekId isSpecPokeId isOffsetsId isGStorableIdisGStorableMethodId isNonRecBindtoIsBind withTypeCheck isIntType isPtrTypeisIOType isIOTyConisStatePrimTypeisStatePrimTyConisRealWorldTypeisRealWorldTyConisGStorableInstTyConhasConstraintKindhasGStorableConstraintsgetGStorableInstTypegetAlignmentType getSizeType getPeekType getPokeTypegetOffsetsTypegetGStorableTypegetGStorableMethodTypecalcGroupOrdersubstituteTyCongetDataConArgs groupBinds OffsetScopeIntList IntPrimVal compileExprtryCompileExpr intToExprintSubstitutionoffsetSubstitution getScopeId getScopeExpr intListExpr exprToIntList isLitOrGlobal inScopeAll isIndexer caseExprIndexoffsetSubstitutionTreecompileGStorableBindlintBindreplaceIdsBind compileGroups$fOutputableOffsetScope groupTypesgstorableSubstitutionpluginbase Data.FoldableelemghcVarIdCoreSynCoreExpr