H?      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ K L M N O P Q R S T U V W X Y Z [\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !!!!!"None;GIN!Output a document to the console.-Output a document and newline to the console.Output a string to the console.+Output a string and newline to the console.Output chatty okU type responses. These are only displayed in the Interactive and Batch interfaces.Safe;GIN )Where some source code was obtained from.,This is used when generating error messages. Read directly from a file. Supplied on the command line. Typed into the console.  Part of a .dcx batch file.>Get the starting source line number to report for this source.Get the name of a source.     None;GINcLoad and typecheck a module's rewrite rules, using exported and imported definitions from moduleLanguage fragment.Path to the module.(Module with types of imports and exportsSafe;GIN )How we're reading the current expression.]Read input line-by-line, using a backslash at the end of the line to continue to the next.;Read input as a block terminated by a double semicolon (;;).Read input from a file specified on the promptWhat interface is being used.*Read commands from unix command-line args.-Read commands interactively from the console.+Read commands from the file with this name. /Read the input mode from the front of a string. ! ! ! !None;GIN#$Use the platform's default strategy.$Link the runtime statically.&Compile via the C backend.'Compile via the LLVM backend.(+Core language pretty printer configuration.0'Configuration for main compiler stages.2&Print status to console during builds.3Dump intermediate code.43Use bidirectional type inference on the input code.5)Simplifiers to apply to intermediate code6Backend code generator to use7Runtime system configuration8!Linking strategy for the runtime.9.The builder to use for the target architecture:+Core langauge pretty printer configuration.;)Suppress the #import prelude in C modules<:Base directories to look for modules sources during build.=Override output file>%Override directory for build products?Keep intermediate .ddc.ll files@Keep intermediate .ddc.c filesAKeep intermediate .ddc.s filesBAvoid running the type checker where possible. When debugging program transformations, use this to get the invalid code rather than just the type error message.C%Default pretty printer configuration.DZConvert a the pretty configuration into the mode to use to print a module. We keep the ( type separate from PrettyMode because the former can be non-recursive with other types, and does not need to be parameterised by the annotation or name types.EVGiven the name of a source file, determine the name of the associated object file.FXGiven the name of a source file, determine the name of an associated executable file.%"#$%&'()*+,-./0123456789:;<=>?@ABCDEF%"#$%&'()*+,-./0123456789:;<=>?@ABCDEF%0123456789:;<=>?@AB()*+,-./CDEF%&'"#$"#$%&'()*+,-./0123456789:;<=>?@ABCDEFNone;GINGIf the Dump mode is set then produce a SinkFile to write a module to a file, otherwise produce SinkDiscard to drop it on the floor.GGGGNone;GINHLoad and typecheck a module.HDriver config.Language fragment.Path to the module.IIf true, print errors out Driver configLanguage fragment.Path to the module.HIHIHI None;GINJType check Core Flow.K(Prepare a Core Flow module for lowering.L?Perform rate inference to transform vector operations to seriesM_Lower a Core Flow module. Is needs to already be prepped, and have full type annotations.NBWind loop primops into tail recursive loops in a Core Flow module.OBWind loop primops into tail recursive loops in a Core Flow module.JKLMNOJKLMNOJKLMNOJKLMNO None;GINP'Load and type check a Core Salt module.QOptimise Core Salt.RConvert Core Salt to C code.SConvert Core Salt to LLVM.TCompile Core Salt via C code.UCompile LLVM code.PQRSTMPath of original source file. Build products are placed into the same dir.&Should we link this into an executableUMPath of original source file. Build products are placed into the same dir.:If True then link with these other .os into an executable.PQRSTUPQRSTUPQRSTU None;GINV*Load and type check a Source Tetra module.W(Load and type check a Core Tetra module.X)Convert a Core Tetra module to Core Salt..This includes performing the Boxing transform.VWXVWXVWXVWX"None;GIN("#$%&'0123456789:;<=>?@ABJKLMNOPQRSTUVWX(0123456789:;<=>?@AB%&'"#$VWXJKLMNOPQRSTU None;GINY*Concretize rate variables to loop indices.YSource of the code.Program module text.YYY None;GINZ"Lower a flow program to loop code.ZDriver config."Config for the lowering transform.Source of the code.Program module text.ZZZNone;GIN[Thread a state token through the given flow program. This can't be generic in the language fragment because we need to provide a specific type to use for the world token, and new types for the effectful combinators.[Driver config.Source of the code.Program module text.[[[None;GIN\1Prepare a Disciple Core Flow module for lowering.\Driver config.Source of the code.Program module text.\\\None;GIN]?Perform rate inference to transform vector operations to series^"Perform rate inference, then lower]Driver config.Source of the code.Program module text.^Driver config."Config for the lowering transform.Source of the code.Program module text.]^]^]^None;GIN_Thread a state token through the given flow program. This can't be generic in the language fragment because we need to provide a specific type to use for the world token, and new types for the effectful combinators._Driver config.Source of the code.Program module text.___None;GIN`<Convert a module to Core Tetra. The output is printed to stdout". Any errors are thrown in the  monad.aGConvert some fragment of Disciple Core to Core Tetra. Works for the Flow' fragment. The result is printed to stdout". Any errors are thrown in the  monad.bGConvert some fragment of Disciple Core to Core Tetra. Works for the Tetra' fragment. The result is printed to stdout". Any errors are thrown in the  monad.`Driver config."Config for the lowering transform.Module file path.aDriver config."Config for the lowering transform.Core language definition.Module file path.bDriver config."Config for the lowering transform.Language definition.Source of the code.Program module text.c`abc`abc`abcNone;GINd"Lower a flow program to loop code.dSource of the code.Program module text.dddNone;GINe Manage boxing in a Tetra module.eDriver config.Source of the code.Program module text.eeeNone;GINf0Manage higher order functions in a Tetra module.fDriver config.Source of the code.Program module text.fffNone;GINg0Parse a module. The result AST is printed to stdout". Any errors are thrown in the  monad.This function handle fragments of Disciple Core, as well as Source Tetra modules. The language to use is determined by inspecting the file name extension.hRParse a Disciple Source Tetra module from a file. The result AST is printed to stdout". Any errors are thrown in the  monad.iCParse a Disciple Core module from a file. The AST is printed to stdout". Any errors are thrown in the  monad.gDriver config.Module file name.hDriver config.Module file path.i Driver configCore language definition.Module file path.ghighighiNone;GINjLocate the source file for a module, starting from the given list of base paths. If the module cannot be found, or is found from multiple paths then throw an error in the monad.oGiven the path of a .build spec, and a module name, yield the path where the source of the module should be.j Base paths. Module name.Source file extension Base path. Module name.Source file extension.jjjNone;GINk(Recursively compile source modules into .o? files, or load existing interfaces if we have them and the .o file is still fresh.fInterface files that are loaded or generated during compilation are added to the interface store.lRecursively compile .ds source modules into .o? files, or load existing interfaces if we have them and the .o file is still fresh.fInterface files that are loaded or generated during compilation are added to the interface store.mqLoad the interface correponding to a source file, or re-compile the source if it's fresher than the interface.MInterfaces for dependent modules must already be in the interface store.nCompile a source module into a .o file.MInterfaces for dependent modules must already be in the interface store.This produces an .o; file next to the source file, and may also produce a .diG interface, depending on what sort of source file we're compiling.QIf compilation produces an interface then it is added to the existing store.=Given a driver config, locate the module with the given name.oNIf the given file exists then get its modification time, otherwise Nothing.*Drop tokens after and including the first 'where' keyword. When parsing just the module header we can drop these tokens because they only represent the body of the module.kBuild driver config.Build an exectable.Interface store.Path to file to compilelBuild driver config.Build an executable.Inferface store.$Names of source files still to load.(Names of source files currently blocked.mBuild driver config.Build an exeecutable.Interface store.Path to source file.nBuild driver config.Build an executable.Interface store.Path to source file.Path of module.Module source.oklmnoklmnoklmnoNone;GINp1Build all the components defined by a build spec.q)Build a single component of a build spec..Build a library consisting of several modules.2Build an executable consisting of several modules.rBuild a single module.p Build config.Interface store. Build spec.q Build config.Interface store.Component to build. Build configInterface store.Names of modules still to build Build config.Interface store.Name of main module.Names of dependency modulesr Build config.Interface store. Module name.pqrpqrpqrNone;GINssssNone;GINttttNone;GIN u/What components of the checked type to display.zKParse and type-check a core module from a file, printing any errors to stdout.This function handle fragments of Disciple Core, as well as Source Tetra modules. The language to use is determined by inspecting the file name extension.{1Check a Disciple Source Tetra module from a file.|TCheck a Disciple Source Tetra module from a string. Any errors are thrown in the  monad.}1Check some fragment of Disciple core from a file.~1Parse and type-check a core module from a string.'Parse a core spec, and return its kind..Show the type of a type in the given universe.!Check if two types are equivlant.\Parse the given core expression, and return it, along with its type, effect and closure.eIf the expression had a parse error, undefined vars, or type error then print this to the console. We include a flag to override the language profile to allow partially applied primitives. Although a paticular evaluator (or backend) may not support partially applied primitives, we want to accept them if we are only loading an expression to check its type.Show the spec of an expression.=Check expression and reconstruct type annotations on binders.Show the type of a witness.uvwxyzDriver config.Interface store.Module file path.{Driver config.Interface store.Module file path.|Driver config.Interface storeSource of the code.Program module text.}Driver config.Core language definition.Module file path.~Language fragment.Source of the program text. Program text.Type checker mode.Language fragment.(Universe this type is supposed to be in.Source of the program text. Program text.The current language fragment.Current modulesType checker mode.Print type checker trace.(Allow partial application of primitives.'Where this expression was sourced from.Text to parse.Language fragment.What part of the type to show..Type checker mode, Synth(True) or Recon(False)&Whether to display type checker trace.Source of the program text. Program text.uvwxyz{|}~z{|}~uvwxy uvwxyz{|}~None;GINCLoad and transform a module or expression, and print the result to stdout.If the source starts with the 'module'F keyword then treat it as one, otherwise treat it as an expression.5Load and transform a module, and print the result to stdout.<Load and transfrom an expression and print the result to stdout.8Load an expression and apply the current transformation.*Transform an expression, or display errorsDriver config.Language definition.Print transform info.Source of the code. Input text.Driver config.Language definition.Print transform info.Source of the code. Input text.Driver config.Source language.Print transform info.Source of input text. Input text.Driver config.Trace transform information.Language profile.Kind Environment.Type Environment.None;GIN9Load and transform source code, interface, or build file.The result is printed to stdout". Any errors are thrown in the  monad.This function handle fragments of Disciple Core, as well as Source Tetra modules. The language to use is determined by inspecting the file name extension.FWe also take the specification of a simplifier to apply to the module.fFor Source Tetra modules, dependent modules will be compiled, or their interfaces loaded as needed.MLoad a Disciple Source Tetra module from a file. The result is printed to stdout". Any errors are thrown in the  monad.OLoad a Disciple Source Tetra module from a string. The result is printed to stdout". Any errors are thrown in the  monad.ELoad a Disciple Core module from a file. The result is printed to stdout.GLoad a Disciple Core module from a string. The result it printed to stdout.tParse the simplifier defined in this string, and load it and all the inliner templates into the language bundle.iParse the simplifier defined in this string, and load it and all the inliner templates into the bundleDriver config.Interface store.Simplifier specification.)More modules to use as inliner templates.Module file name.Driver config.Interface store.Tetra language bundle.Module file path.Driver config.Interface store.Tetra language bundle.Source of the code.Program module text.Driver config.Core language definition.Module file pathDriver config.Language definitionSource of the code.Program module text.Driver config.Language definition.Simplifier specification.$Modules to use as inliner templates.Driver config.Language bundleSimplifier specification.$Modules to use as inliner templates.None;GIN3Convert a module to C. The output is printed to stdout". Any errors are thrown in the  monad.@Convert Disciple Source Tetra to C. The result is printed to stdout". Any errors are thrown in the  monad.@Convert Disciple Source Tetra to C. The result is printed to stdout". Any errors are thrown in the  monad.@Parse, check and convert a Core module to Sea. Works for the Tetra, and Salt( fragments. The result is printed to stdout". Any errors are thrown in the  monad.EParse, check, and convert a module to C. The output is printed to stdout#. Any errors are thrown in the  monad.Driver config.Interface store.Core language definition.Driver config.Interface store.Module file path.Driver config.Interface store.Source of the code.Program module text.Driver config.Core language definition.Module file path.Compiler configuration.Language definition.Source of the code.Program module text.None;GIN6Convert a module to LLVM. The output is printed to stdout". Any errors are thrown in the  monad.CConvert Disciple Source Tetra to LLVM. The result is printed to stdout". Any errors are thrown in the  monad.CConvert Disciple Source Tetra to LLVM. The result is printed to stdout". Any errors are thrown in the  monad.AParse, check and convert a Core module to LLVM. Works for the Tetra, and Salt( fragments. The result is printed to stdout". Any errors are thrown in the  monad.AParse, check and convert a Core module to LLVM. Works for the Tetra, and Salt( fragments. The result is printed to stdout". Any errors are thrown in the  monad.Driver config.Interface store.Core language definition.Driver config.Interface store.Module file path.Driver config.Interface store.Source of the code.Program module text.Driver config.Core language definition.Module file path.Driver config.Language definition.Source of the code.Program module text. None;GIN5Convert a module to PHP. The output is printed to stdout". Any errors are thrown in the  monad.BConvert Disciple Source Tetra to PHP. The result is printed to stdout". Any errors are thrown in the  monad.BConvert Disciple Source Tetra to PHP. The result is printed to stdout". Any errors are thrown in the  monad.@Parse, check and convert a Core module to PHP. Works for the Tetra, and Salt( fragments. The result is printed to stdout". Any errors are thrown in the  monad.GParse, check, and convert a module to PHP. The output is printed to stdout#. Any errors are thrown in the  monad.Driver config.Interface store.Core language definition.Driver config.Interface store.Module file path.Driver config.Interface store.Source of the code.Program module text.Driver config.Core language definition.Module file path.Compiler configuration.Language definition.Source of the code.Program module text.!None;GIN;Convert a module to Core Salt. The output is printed to stdout". Any errors are thrown in the  monad.OConvert Disciple Core Tetra to Disciple Core Salt. The result is printed to stdout". Any errors are thrown in the  monad.QConvert Disciple Source Tetra to Disciple Core Salt. The result is printed to stdout". Any errors are thrown in the  monad.FConvert some fragment of Disciple Core to Core Salt. Works for the Tetra' fragment. The result is printed to stdout". Any errors are thrown in the  monad.FConvert some fragment of Disciple Core to Core Salt. Works for the Tetra' fragment. The result is printed to stdout". Any errors are thrown in the  monad.Driver config.Interface store.Module file path.Driver config.Interface store.Module file path.Driver config.Interface store.Source of the code.Program module text.Driver config.Core language definition.Module file path.Driver config.Language definition.Source of the code.Program module text.#$%#$&#$'#$()*+,-./0123456789:;<=>>?@ABCDEFGHIJKLLMNOPQRSSTUVWXYZ[\]^_`abcdefghijk l m n o p q r s t u v w x y z { |}~ !!!!!ddcdr_8eEBPBJep8D1HuJPqiUGd9DDC.Driver.Command.CheckDDC.Driver.OutputDDC.Driver.Interface.SourceDDC.Driver.Command.RewriteRulesDDC.Driver.Interface.InputDDC.Driver.ConfigDDC.Driver.DumpDDC.Driver.Command.ReadDDC.Driver.Stage.FlowDDC.Driver.Stage.SaltDDC.Driver.Stage.Tetra"DDC.Driver.Command.Flow.ConcretizeDDC.Driver.Command.Flow.LowerDDC.Driver.Command.Flow.MeltDDC.Driver.Command.Flow.PrepDDC.Driver.Command.Flow.RateDDC.Driver.Command.Flow.ThreadDDC.Driver.Command.Flow.ToTetraDDC.Driver.Command.Flow.WindDDC.Driver.Command.Tetra.BoxingDDC.Driver.Command.Tetra.CurryDDC.Driver.Command.ParseDDC.Driver.Build.LocateDDC.Driver.Command.CompileDDC.Driver.Build.MainDDC.Driver.Command.BaseBuildDDC.Driver.Command.BuildDDC.Driver.Command.TransDDC.Driver.Command.LoadDDC.Driver.Command.ToCDDC.Driver.Command.ToLlvmDDC.Driver.Command.ToPHPDDC.Driver.Command.ToSaltDDC.Driver.Stageddcco_3yDkwedp2NiHTZLaRkKO3PDDC.Type.Check.ContextCheckSynthReconModeoutDocoutDocLnoutStroutStrLn chatStrLnSource SourceFile SourceArgs SourceConsole SourceBatchlineStartOfSource nameOfSourcecmdTryReadRulesInput InputLine InputBlock InputFileInputInterfaceInputInterfaceArgsInputInterfaceConsoleInputInterfaceBatch InputStateinputParseCommand inputMode inputCommandinputLineNumberinputAcc readInput inputLineRuntimeLinkStrategy LinkDefault LinkStatic ViaBackendViaCViaLLVM ConfigPrettyconfigPrettyUseLetCaseconfigPrettyVarTypesconfigPrettyConTypesconfigPrettySuppressImportsconfigPrettySuppressExportsconfigPrettySuppressLetTypesConfigconfigLogBuild configDumpconfigInferTypesconfigSimplSaltconfigViaBackend configRuntimeconfigRuntimeLinkStrategy configBuilder configPrettyconfigSuppressHashImportsconfigModuleBaseDirectoriesconfigOutputFileconfigOutputDirconfigKeepLlvmFilesconfigKeepSeaFilesconfigKeepAsmFilesconfigTaintAvoidTypeChecksdefaultConfigPrettyprettyModeOfConfigobjectPathOfConfigexePathOfConfigdump cmdReadModulecmdReadModule' stageFlowLoad stageFlowPrep stageFlowRatestageFlowLower stageFlowWindstageFlowToTetra stageSaltLoad stageSaltOpt stageSaltToCstageSaltToLLVMstageCompileSaltstageCompileLLVMstageSourceTetraLoadstageTetraLoadstageTetraToSaltcmdFlowConcretize cmdFlowLower cmdFlowMelt cmdFlowPrep cmdFlowRatecmdFlowRateLower cmdFlowThreadcmdFlowToTetraFromFilecmdFlowToTetraCoreFromFilecmdFlowToTetraCoreFromStringpipelineFlowToTetra cmdFlowWindcmdTetraBoxing cmdTetraCurrycmdParseFromFilecmdParseSourceTetraFromFilecmdParseCoreFromFilelocateModuleFromPathscmdCompileRecursivecmdCompileRecursiveDScmdLoadOrCompile cmdCompilegetModificationTimeIfExists buildSpecbuildComponent buildModule cmdBaseBuildcmdBuild ShowSpecMode ShowSpecAll ShowSpecDataShowSpecEffectShowSpecClosurecmdCheckFromFilecmdCheckSourceTetraFromFilecmdCheckSourceTetraFromStringcmdCheckCoreFromFilecmdCheckCoreFromStringcmdParseCheckType cmdShowType cmdTypeEquivcmdParseCheckExp cmdShowSpec cmdExpRecon cmdShowWTypecmdTransDetectcmdTransModule cmdTransExpcmdTransExpConttransExpcmdLoadFromFilecmdLoadSourceTetraFromFilecmdLoadSourceTetraFromStringcmdLoadCoreFromFilecmdLoadCoreFromStringcmdLoadSimplifiercmdLoadSimplifierIntoBundlecmdToSeaFromFilecmdToSeaSourceTetraFromFilecmdToSeaSourceTetraFromStringcmdToSeaCoreFromFilecmdToSeaCoreFromStringcmdToLlvmFromFilecmdToLlvmSourceTetraFromFilecmdToLlvmSourceTetraFromStringcmdToLlvmCoreFromFilecmdToLlvmCoreFromStringcmdToPHPFromFilecmdToPHPSourceTetraFromFilecmdToPHPSourceTetraFromStringcmdToPHPCoreFromFilecmdToPHPCoreFromStringcmdToSaltFromFilecmdToSaltSourceTetraFromFilecmdToSaltSourceTetraFromStringcmdToSaltCoreFromFilecmdToSaltCoreFromStringcmdReadRules_parseparsecmdReadModule_parsetrans_3eG64VdP2vzGjP6wJiCp5XControl.Monad.Trans.ExceptExceptTlocateModuleFromPathlocateModuleFromConfigdropBody tasteNeeded buildLibrarybuildExecutable baseSaltFiles baseSeaFiles