úÎ!´­ÆZ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY(c) Mateusz KBoczko, 2016MITmateusz.p.kloczko@gmail.com experimentalGHC-onlyNone ½ derive-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"Equality for type variable bindersderive-storable-pluginZ function for types  (c) Mateusz KBoczko, 2016MITmateusz.p.kloczko@gmail.com experimentalGHC-onlyNone6 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-pluginDThe 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-pluginWChange String to SDoc. Each newline is $$ed with nest equal to spaces before. t is 4.    (c) Mateusz KBoczko, 2016MITmateusz.p.kloczko@gmail.com experimentalGHC-onlyNone1derive-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 identifiersderive-storable-plugin/Predicate used to find gpeekByteOff identifiersderive-storable-pluginAPredicate 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-pluginEUse both type getters and identifier predicate to create a predicate. !"#$%&'() !"#$%&'()(c) Mateusz KBoczko, 2016MITmateusz.p.kloczko@gmail.com experimentalGHC-onlyNoneLô*derive-storable-plugin!Check whether the type is integer+derive-storable-plugin#Check whether the type is a Pointer,derive-storable-pluginCheck whether the type is a IO.-derive-storable-plugin,Check whether the type constructor is an IO..derive-storable-plugin"Check whether the type is a State#/derive-storable-plugin.Check whether the type constructor is a State#0derive-storable-plugin&Check whether the type is a RealWorld#1derive-storable-plugin2Check whether the type constructor is a RealWorld#[derive-storable-plugin-Check whether the type is a State# RealWorld.2derive-storable-plugin0Check whether the type constuctor is a GStorable3derive-storable-plugin2Check whether the type is of kind * -> Constraint.4derive-storable-plugin1Check whether the type has GStorable constraints.5derive-storable-plugin%Get the type from GStorable instance.6derive-storable-plugin,Get the type from GStorable alignment method7derive-storable-plugin)Get the type from GStorable sizeOf method8derive-storable-plugin'Get the type from GStorable peek method\derive-storable-pluginMInsides of getPeekType, which takes into the account the order of arguments.9derive-storable-plugin'Get the type from GStorable poke method:derive-storable-plugin-Get the type of Offsets. Assuming it is [Int];derive-storable-plugin/Combination of type getters for all GStorables.<derive-storable-plugin2Combination of type getters for GStorable methods.\derive-storable-plugin Is after Ptrderive-storable-plugin Is after Intderive-storable-plugin Returning]derive-storable-plugin Is after Ptrderive-storable-plugin Is after Intderive-storable-plugin Returning*+,-./0123456789:;<*+,-./0123456789:;<(c) Mateusz KBoczko, 2016MITmateusz.p.kloczko@gmail.com experimentalGHC-onlyNone^T^derive-storable-pluginNUsed for type substitution. Whether a TyVar appears, replace it with a Type.=derive-storable-pluginCalculate the order of types. _derive-storable-pluginVThis could be done more efficently if we'd represent the problem as a graph problem.>derive-storable-plugin'Functions doing the type substitutions.?derive-storable-plugin6Get data constructor arguments from an algebraic type.@derive-storable-plugin(Group bindings according to type groups.`derive-storable-pluginIteration for groupBinds_derive-storable-pluginType to check derive-storable-pluginType that are checkedderive-storable-pluginType that are in this layerderive-storable-pluginType that are not.@derive-storable-plugin Type groups.derive-storable-pluginShould be only NonRecs. `derive-storable-pluginGroup of typesderive-storable-pluginUngrouped bindingsderive-storable-pluginGrouped bindingsderive-storable-plugin'Grouped bindings, and perhaps an error)=>?@=>?@(c) Mateusz KBoczko, 2016MITmateusz.p.kloczko@gmail.com experimentalGHC-onlyNone”/Aderive-storable-plugin(Scoped variables for optimising offsets.Dderive-storable-pluginCompile an expression.Ederive-storable-plugin6Try to compile an expression. Perhaps return an error.aderive-storable-plugin+A small helper - create an integer literal.Fderive-storable-plugin%Create an expression of form: x -> 16Gderive-storable-plugin5For gsizeOf and galignment - calculate the variables.Hderive-storable-pluginTry to substitute the offsets.Iderive-storable-pluginGet b from AJderive-storable-pluginGet c from AKderive-storable-plugin+Create a list expression from Haskell list.Lderive-storable-plugin?Compile expression to list and then write it back to core expr.dderive-storable-pluginCreate a int prim expression.ederive-storable-pluginCCompile expression to int prim and then write it back to core expr.Mderive-storable-plugin2Return the expression if it's a literal or global.Nderive-storable-pluginHCheck whether the given CoreExpr is an id, and if yes - substitute it.Oderive-storable-pluginIs an "$w!!" identifierPderive-storable-plugin\Try to create a compileable version of case expr body. For !! @Int offsets val expressions.Qderive-storable-pluginŸSubstitute 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])Rderive-storable-plugin3Compile the expression in Core Bind and replace it.fderive-storable-plugin5Put the expression back into the unfolding core expr.Sderive-storable-pluginLint a bindingTderive-storable-pluginNSubstitutes the localIds inside the bindings with bodies of provided bindings.gderive-storable-pluginQSubstitutes the localIds inside the expressions with bodies of provided bindings.Uderive-storable-pluginCompile ordered binding.hderive-storable-plugin$The insides of compileGroups method.iderive-storable-plugin-Handle errors during the compileGroups stage.Sderive-storable-plugin3Core binding to use when returning CompilationErrorderive-storable-pluginCore binding to checkderive-storable-pluginSuccess or failureTderive-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.gderive-storable-plugin$Replace with - for GStorable bindinsderive-storable-plugin%Replace with - for other top-bindingsderive-storable-plugin(Expression which will have ids replaced.derive-storable-pluginExpression with replaced ids.Uderive-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.hderive-storable-pluginFor error handling.derive-storable-pluginDepth, useful for debugging.derive-storable-pluginOrdered GStorable bindings. derive-storable-pluginOther top-level bindingsderive-storable-pluginSuccesfull substitutions.derive-storable-pluginUnsuccesfull substitutions.derive-storable-plugin/Both successfull and unsuccesfull subtitutions.iderive-storable-pluginError handlingderive-storable-pluginCurrent iterationderive-storable-pluginList of errorsderive-storable-pluginBindings from errors.ABCDEFGHIJKLMNOPQRSTUDEFGHQABCIJKLMNOPRSTU(c) Mateusz KBoczko, 2016MITmateusz.p.kloczko@gmail.com experimentalGHC-onlyNone¤ Wderive-storable-pluginXFind GStorable identifiers, obtain their types, and calculate the order of compilation.jderive-storable-pluginoPrint errors related to CoreBind grouping. Return the badly grouped bindings, and perhaps crash the compiler.kderive-storable-plugin5Print the information related to found GStorable ids.Xderive-storable-plugin+Do the optimisation for GStorable bindings.jderive-storable-pluginVerbosity and ToCrash options derive-storable-plugin The errorderive-storable-pluginRecovered bindings.kderive-storable-pluginVerbosity and ToCrash options derive-storable-pluginGStorable ids.Xderive-storable-pluginVerbosity and ToCrash options.derive-storable-pluginReference to grouped types.derive-storable-plugin"Information about compiled module.derive-storable-plugin@Information about compiled module, with GStorable optimisations.WXWX(c) Mateusz KBoczko, 2016MITmateusz.p.kloczko@gmail.com experimentalGHC-onlyNone­ºYderive-storable-pluginThe plugin itself.lderive-storable-plugin5Checks whether the core pass is a simplifier phase 0.mderive-storable-plugin(Return the index of simplifier phase 0. nderive-storable-plugin4Checks whether the core pass is a specialising pass.oderive-storable-plugin+Return the index of the specialising pass. pderive-storable-plugin@Set the verbosity and ToCrash flags based on supplied arguments.qderive-storable-pluginParse command line options.rderive-storable-plugin!Inform about installation errors.YYs      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnlopqrstuvwxyz{|}~€5derive-storable-plugin-0.2.2.0-2IkKbhYAPaoI13faL1siIq0Foreign.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 eqTyVarBindelemTypeError TypeNotFound RecBindingCompilationNotSupportedCompilationErrorOrderingFailedBindsOrderingFailedTypes OtherErrorFlagsCrashOnWarning VerbosityNoneSomeAllpprError stringToPprisGStorableInstId isSizeOfId isAlignmentIdisPeekIdisPokeIdisSpecGStorableInstIdisSpecSizeOfIdisSpecAlignmentId 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.FoldableelemisStateRealWorld getPeekType' getPokeType' TypeScopecalcGroupOrder_iterationgroupBinds_rec intLiteralghcVarIdCoreSynCoreExprintPrimValExpr exprToIntValreplaceUnfoldingBind replaceIdscompileGroups_reccompileGroups_errorgrouping_errorsfoundBinds_infoisPhase0 afterPhase0 isSpecializeafterSpecializesetOpts parseOpts install_err