e      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p qrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!Copyright 2017 Awake Security Apache-2.0opensource@awakesecurity.com experimentalNone59:;<=IKThis type represents a positive number; i.e.: an integer greater than zero.Constructor for a .A  for the  underlying a .Uses the underlying  instance.Uses the underlying  instance.This instance uses  to preserve the  invariant.Copyright 2017 Awake Security Apache-2.0opensource@awakesecurity.com experimentalNone 59:;<=I?An interned (hash-consed) text type. This is a newtype over  from the intern package.Get the  corresponding to the given  value. uninternText ("foobar" :: IText)"foobar" Intern a  value, resulting in an  value.6uninternText (internText (Text.pack x)) == Text.pack xinternText ("foobar" :: Text)"foobar"An  between  and .0(Lens.view itext (fromString x)) == fromString x<(Lens.view (Lens.from itext) (fromString x)) == fromString x-(Lens.view itext ("foobar" :: Text)) :: IText"foobar"9(Lens.view (Lens.from itext) ("foobar" :: IText)) :: Text"foobar" Uses the  instance. Uses the  instance.Inverse of the  instance.Converts to JSON string via .Inverse of the  instance.Converts to JSON string via . Defined by rnf a = seq a (), since  is a newtype of strict types. Uses the  instance for . Not very efficient.fTODO: perhaps switch to hashing the identifier, since this is likely pretty hot code given all the HashMap Target & types all over the place.Inverse of the  instance. Displays an  such that  is inverse to . The  instance in intern$ compares hashes rather than values.  Copyright 2017 Awake Security Apache-2.0opensource@awakesecurity.com experimentalNone59:;<=I$(This type represents a Unix path string.% Construct a $ from some .&An isomorphism between a $ and its underlying .'&An isomorphism that gives access to a -typed view of a $., even though the underlying data has type .This is equivalent to pathIText . from Ninja.itext.(&An isomorphism that gives access to a -typed view of a $.)An isomorphism between a $ and a  from system-filepath. This uses  and 6, so all the caveats on those functions apply here.*Uses the underlying  instance.+Uses the underlying  instance. $%&'()*+$%&'()$%&'()$%&'()*+Copyright 2017 Awake Security Apache-2.0opensource@awakesecurity.com experimentalNone9:;8This typeclass allows you to write code that reads files from the filesystem and then later run that code purely against a virtual filesystem of some description.9;Read the file located at the given path and decode it into .CTODO: some notion of error handling should be encoded into the type:A placeholder (undecidable) instance that allows this constraint to propagate through monad transformers without needing to  manually.;The obvious instance for .89:;898989:;Copyright 2017 Awake Security Apache-2.0opensource@awakesecurity.com experimentalNone8989Copyright 2017 Awake Security Apache-2.0opensource@awakesecurity.com experimentalNone!"23459:;<=I[3<A column number.=A line number.>!A line/column offset into a file.?AThis datatype represents the position of a cursor in a text file.@!Represents a span of source code.A*A type representing a set of source spans.BBThis datatype represents a value annotated with a source location. Construct a B value directly.CGiven path ::  $ and a text :: , do the following: Remove all '\r' characters from the text. Split the texty into chunks that are guaranteed not to contain newlines or whitespace, and which are annotated with their location.DRead the file at the given $ and then run C on the resulting .EThis function is equivalent to tokenize Nothing.F#The position of this located value.G(The value underlying this located value.H Construct a A from a list of @s.IA lens into the   @ underlying a value of type A.J Construct a @5 from a given start position to a given end position.K2A lens into the (nullable) path associated with a @.L A lens giving the start and end >s associated with a @.MA lens into the > associated with the start of a @.NA lens into the > associated with the end of a @.OA getter for the ? associated with the start of a @.PA getter for the ? associated with the end of a @.Q Construct a ? from a (nullable) path and a (line, column) pair.R9The path of the file pointed to by this position, if any.S3The offset in the file pointed to by this position.T8The line number in the file pointed to by this position.U:The column number in the line pointed to by this position.VIf two ?Ws are comparable (i.e.: if they are in the same file), this function will return an  I giving their relative positions. Otherwise, it will of course return  .W Compare two >$s in lexicographic order (i.e.: the <+ is ignored unless they are on the same =).XA lens into the = associated with an >.#For now, this is simply defined as  offsetLine =   , but if >P is later refactored to be an abstract data type, using this lens instead of  1 will decrease the amount of code that breaks.YA lens into the = associated with an >.Read the description of XQ for an understanding of why this exists and why you should use it instead of  .ZDefault  instance via .[Default  instance via .\Default  instance via .]Default  instance via .^Inverse of the  instance._ Converts to {file: &, line: &, col: &}.`Default  instance via .aDefault  instance via .bDefault  instance via .cDefault  instance via .dInverse of the  instance.e Converts to {file: &, start: &, end: &}.fDefault  instance via .gDefault  instance via .hDefault  instance via .iDefault  instance via .jDefault  instance via .kDefault  instance via .lInverse of the  instance.m Converts to {position: &, value: &}.G<=>?@AB !CDEFGHIJ,The file in which this span resides, if any.The start offset.The end offset.KLMNOPQRSTUVWXY"#$%Z[\]^_`abcdefghijklm<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYBCDEFGAHI@JKLMNOP?QRSTUV>WXY=<9<=>?@AB !CDEFGHIJKLMNOPQRSTUVWXY"#$%Z[\]^_`abcdefghijklmCopyright 2017 Awake Security Apache-2.0opensource@awakesecurity.com experimentalNone59:;<=IThis type represents a POSIX sh command line.Constructor for a .An isomorphism between a  and its underlying .Uses the underlying  instance.Uses the underlying  instance.&'&'Copyright 2017 Awake Security Apache-2.0opensource@awakesecurity.com experimentalNoneDOTIf you have some type that represents an AST node, it is often useful to add a polymorphic "annotation field" to it, which is used for things like source positions.:Specifically, suppose we have the following AST node type: @data Foo = Foo { _fooBar :: !Bar, _fooBaz :: !Baz } deriving ( &);Then an annotation field is added by the following process: $Add an extra (final) type parameter ann to the type.Add an extra field _fooAnn :: !ann.Derive instances of (, ), and *. If the type is recursive, add a + instance. See Language.Ninja.AST.Expr for a complete example of this. Write an 5 instance with the canonical lens given by the _fooAnn9 field. There are plenty of examples around this library.The end result then looks like: data Foo ann = Foo { _fooAnn :: !ann , _fooBar :: !Bar , _fooBaz :: !Baz } deriving ( &, Functor, Foldable, Traversable) instance Annotated Foo where annotation' = &#Given a function that is used when ,?ing any subterms, return a lens into the "annotation" field.,When writing an instance, keep in mind that  idO should just be the typical definition for a lens into the annotation field.$It should also be true that for any  f :: B -> C and  g :: A -> B, 4annotation' (f . g) == annotation' f . annotation' gThis is just shorthand for  id.Copyright 2017 Awake Security Apache-2.0opensource@awakesecurity.com experimentalNone/$%&'()<=>?@ABCDEFGHIJKLMNQRSTUVWXY/$%&'()BCDEFGAHI@JKLMN?QRSTUV>WXY=<Copyright 2017 Awake Security Apache-2.0opensource@awakesecurity.com experimentalNone !"59:;<=I[$The type of a ": normal, implicit, or order-only.A normal dependency.{An order-only dependency. These are only rebuilt if there is at least one non-order-only dependency that is out of date.fSection 4.3 "Types of Prerequisites" in the GNU Make manual has a good explanation of this concept.A build dependency.!More information is available  4https://ninja-build.org/manual.html#ref_dependencieshere.A Ninja build output.!More information is available  /https://ninja-build.org/manual.html#ref_outputshere.)This type represents a Ninja target name. Construct a  from some .An isomorphism between a  and its underlying IText.&An isomorphism that gives access to a -typed view of a ., even though the underlying data has type IText.This is equivalent to targetIText . from itext. Construct an .A lens for the  of an . Construct a .A lens for the  of a .A lens for the  of a .A prism for the  constructor.A prism for the  constructor.Default  instance via .Default  instance via .Default  instance via .Default  instance via .Inverse of the  instance. Converts to "normal",  "implicit", and  "order-only" respectively.Default  instance via .Default  instance via .Default  instance via .Default  instance via .Inverse of the  instance. Converts to {target: &, type: &}.Default  instance via .Default  instance via .Default  instance via .Default  instance via .Inverse of the  instance. Converts to {target: &, type: &}.Uses the underlying IText instance.Uses the underlying IText instance.+-./0123The underlying target.The underlying target.6The dependency type (normal, implicit, or order-only)."-./0123 Copyright 2017 Awake Security Apache-2.0opensource@awakesecurity.com experimentalNone!"-59:;<=T[*The depth of a Ninja pool.!More information is available  ,https://ninja-build.org/manual.html#ref_poolhere.The name of a Ninja pool.!More information is available  ,https://ninja-build.org/manual.html#ref_poolhere.A Ninja pool declaration, as documented  ,https://ninja-build.org/manual.html#ref_poolhere. Construct a , given its name and depth.?The default pool, i.e.: the one whose name is the empty string.The console pool.,Create a pool with the given name and depth.A Getter that gives the name of a pool.A Getter that gives the depth of a pool. Create a W corresponding to the built-in default pool, i.e.: the pool that is selected if the pool& attribute is set to the empty string. Create a  corresponding to the built-in console pool. Create a ` corresponding to a custom pool. Note: this can fail at runtime if given the empty string or  "console", so you should consider  as a safer alternative.%A one-way prism corresponding to the poolNameDefault constructor.%A one-way prism corresponding to the poolNameConsole constructor.%A one-way prism corresponding to the poolNameConsole constructor.An isomorphism between a  and the corresponding . Equivalent to 4  . Convert a  to the string that, if the pool1 attribute is set to it, will cause the given  to be parsed.!printPoolName makePoolNameDefault""!printPoolName makePoolNameConsole "console"+printPoolName (makePoolNameCustom "foobar")"foobar" Inverse of .parsePoolName ""PoolNameDefaultparsePoolName "console"PoolNameConsoleparsePoolName "foobar"PoolNameCustom "foobar"Construct a finite I from an integer, which should be a number greater than or equal to 1.Construct an infinite 6. This constructor is needed for the default pool ( pool = ""), which has an infinite depth.An isomorphism between a  and a   ; the   case maps to  and the 5 case maps to .Default  instance via .Default  instance via .Default  instance via .Default  instance via .Inverse of the  instance. Converts  to  "infinite" and % to the corresponding JSON number.Default  instance via .Default  instance via .Uses the underlying  instance.Uses the underlying  instance.Inverse of the  instance.Converts to JSON string via .Inverse of the  instance.Converts to JSON string via .Converts from string via .Default  instance via .Default  instance via .Uses the underlying instances.Uses the underlying instances.Inverse of the  instance. Converts to {name: &, depth: &}.26789:;<=The pool name.The pool depth.*6789:;<= Copyright 2017 Awake Security Apache-2.0opensource@awakesecurity.com experimentalNone !"59:;<=[&?A response file to use during rule execution, as documented  ,https://ninja-build.org/manual.html#ref_rulehere.0Special dependency information, as described  /https://ninja-build.org/manual.html#ref_headershere.A Ninja rule declaration, as documented  *https://ninja-build.org/manual.html#_ruleshere. Construct an Y with the given name and command, with default values for all other attributes (e.g.: >,  ,  poolDefault).The name of the rule.$The command that this rule will run.]A short description of the command, used to pretty-print the command as it's running. The ninja -v flag controls whether to print the full command or its description; if a command fails, the full command line will always be printed before the command's output.5The process pool in which this rule will be executed.If set, this should be a path to an optional Makefile that contains extra implicit dependencies. This is used to support C/C++ header dependencies. For more information, read the Ninja documentation  ,https://ninja-build.org/manual.html#_depfilehere.If set, enables special dependency processing used in C/C++ header dependencies. For more information, read the Ninja documentation  )https://ninja-build.org/manual.html#_depshere.If this is true, specifies that this rule is used to re-invoke the generator program. Files built using generator rules are treated specially in two ways: firstly, they will not be rebuilt if the command line changes; and secondly, they are not cleaned by default.CIf true, causes Ninja to re-stat the command's outputs after execution of the command. Each output whose modification time the command did not change will be treated as though it had never needed to be built. This may cause the output's reverse dependencies to be removed from the list of pending build actions.If present, Ninja will use a response file for the given command, i.e. write the selected string to the given file before calling the command and delete the file after the command is done.This is particularly useful on Windows OS, where the maximal length of a command line is limited and response files must be used instead. Construct a $ corresponding to the case in which  deps = gcc! is set in a Ninja build rule. Construct a $ corresponding to the case in which  deps = msvc is set and msvc_deps_prefix = &.The msvc_deps_prefix; field defines the string which should be stripped from msvc's  /showIncludesf output. It is only needed if the version of Visual Studio being used is not English. The value of msvc_deps_prefix is "Note: including file: " by default.A prism for the  deps = gcc case. A prism for the  deps = msvc / msvc_deps_prefix = & case.! Construct a  with the given $ and content ."A lens for the rspfile field.#A lens for the rspfile_content field.$Default  instance via .%Default  instance via .&Default  instance via .'Default  instance via .(Inverse of the  instance.) Converts to {path: &, content: &}.*Default  instance via .+Default  instance via .,Default  instance via .-Default  instance via ..Inverse of the  instance./ Converts to  {deps: "gcc"} or {deps: "msvc", prefix: &}.0Default  instance via .1Default  instance via .2Default  instance via .3Default  instance via .4Inverse of the  instance.5Converts to b{name: &, command: &, desc: &, pool: &, depfile: &, deps: &, generator: &, restat: &, rsp: &}.5?@ABCDEFGHIJKLMThe rule name.The command to run.A rule that runs this command. !Corresponds to rspfile.Corresponds to rspfile_content."#$%&'()*+,-./012345 !"# !"#&?@ABC DEFGHIJKLM !"#$%&'()*+,-./012345 Copyright 2017 Awake Security Apache-2.0opensource@awakesecurity.com experimentalNone !"59:;<=T C+Ninja top-level metadata, as documented  0https://ninja-build.org/manual.html#ref_toplevelhere.DConstruct a default C value.ECorresponds to the ninja_required_version top-level variable.FCorresponds to the builddir top-level variable.GDefault  instance via .HDefault  instance via .IDefault  instance via .JDefault  instance via .KInverse of the  instance.L Converts to {req-version: &, build-dir: &}.CNOPDEFQGHIJKLCDEFCDEF CNOPDEFQGHIJKL Copyright 2017 Awake Security Apache-2.0opensource@awakesecurity.com experimentalNone !"*59:;<=D Q]The set of constraints required for a given constraint to be automatically computed for a R.RA Ninja build declaration, as documented  5https://ninja-build.org/manual.html#_build_statementshere.SConstruct a default R from the given T5The rule to execute when building any of the outputs.U9The outputs that are built as a result of rule execution.VAThe dependencies that must be satisfied before this can be built.WDefault  instance via .XDefault  instance via .YDefault  instance via .ZDefault  instance via .[Inverse of the  instance.\ Converts to &{rule: &, outputs: &, dependencies: &}.QRRSTUSTUVWXYZ[\QRSTUVRSTUVQ QRRSTUSTUVWXYZ[\ Copyright 2017 Awake Security Apache-2.0opensource@awakesecurity.com experimentalNone !"*59:;<=D`]The set of constraints required for a given constraint to be automatically computed for a a.a#A parsed and normalized Ninja file.bConstruct a default a value.c2Metadata, which includes top-level variables like builddir.d Compiled build declarations.e Phony targets, as documented  1https://ninja-build.org/manual.html#_more_detailshere.f-The set of default targets, as documented  >https://ninja-build.org/manual.html#_default_target_statementshere.g%The set of pools for this Ninja file.hDefault  instance via .iDefault  instance via .jDefault  instance via .kDefault  instance via .lInverse of the  instance.m Converts to 6{meta: &, builds: &, phonys: &, defaults: &, pools: &}.`aVWXYZ[bcdefghijklm`abcdefgabcdefg``aVWXYZ[bcdefghijklmCopyright 2017 Awake Security Apache-2.0opensource@awakesecurity.com experimentalNoneI !"#CDEFRSTUVabcdefgIabcdefgCDEFRSTUV !"#Copyright 2017 Awake Security Apache-2.0opensource@awakesecurity.com experimentalNone !"$5:<=Tq.The type of errors encountered during parsing.r6Generic catch-all error constructor. Avoid using this.s Lexer failed at binding: textt Expected a colonu )Unexpected $ followed by unexpected stuffv=Lexer expected a separator character but found something elsewAny other lexer error.x *Could not parse depth field in pool, got: texty Unexpected binding defining textzThrow a q.{Throw a generic catch-all q.|Throw a s error.}Throw a t error.~Throw a LexUnexpectedColon error.Throw a v error.Throw a w error.Throw a x error.Throw a y error. Converts to {tag: &, value: &}.Default instance.qrstuvwxyz{|}~qrstuvwxyz{|}~qrstuvwxyz{|}~ qrstuvwxyz{|}~Copyright 2017 Awake Security Apache-2.0opensource@awakesecurity.com experimentalNone !"$5:<=T87The type of errors encountered while compiling a Ninja pool statement.6Generic catch-all error constructor. Avoid using this.  Invalid pool depth for console: int Pool name is an empty string7The type of errors encountered while compiling a Ninja rule statement.6Generic catch-all error constructor. Avoid using this.  Lookup failed on rule variable: text Unknown deps value: text  Unexpected msvc_deps_prefix for `deps = " text"`7The type of errors encountered while compiling a Ninja build statement.6Generic catch-all error constructor. Avoid using this. Rule not found: text7The type of errors encountered while compiling a Ninja default statement.6Generic catch-all error constructor. Avoid using this.=The type of errors encountered while compiling a Ninja phony build.6Generic catch-all error constructor. Avoid using this.>The type of errors encountered while compiling Ninja metadata.6Generic catch-all error constructor. Avoid using this. Failed to parse ninja_required_version: &2The type of errors encountered during compilation.6Generic catch-all error constructor. Avoid using this.%Errors encountered while compiling a Meta.%Errors encountered while compiling a Build.%Errors encountered while compiling a Rule.-Errors encountered while compiling the phony HashMap.6Errors encountered while compiling the default target HashSet.%Errors encountered while compiling a Pool.Throw a .Throw a generic catch-all .Throw a .Throw a generic catch-all .Throw a  error.Throw a .Throw a generic catch-all .Throw a .Throw a generic catch-all .Throw a .Throw a generic catch-all .Throw a  error.Throw a .Throw a generic catch-all .Throw a  error. Throw an  UnknownDeps error. Throw an  error.Throw a .Throw a generic catch-all . Throw an  error. Throw an  error. Converts to {tag: &, value: &}. Converts to {tag: &, value: &}. Converts to {tag: &, value: &}. Converts to {tag: &, value: &}. Converts to {tag: &, value: &}. Converts to {tag: &, value: &}. Converts to {tag: &, value: &}.Default instance.800$Copyright 2017 Awake Security Apache-2.0opensource@awakesecurity.com experimentalNone5:<=]This type subsumes any error that can be thrown during execution of a function defined in language-ninja.6Generic catch-all error constructor. Avoid using this."Errors encountered during parsing.&Errors encountered during compilation.Throw a .Throw a generic catch-all .Throw a q.Throw a . Jqrstuvwxyz{|}~Jqrstuvwxyz{|}~!Copyright 2011-2017 Neil MitchellBSD3opensource@awakesecurity.com experimentalNone *59:;<=DA \ list of ]s.A constraint alias for (^ k,  k).^The set of constraints required for a given constraint to be automatically computed for an .DA Ninja-style environment, basically a nonempty list of hash tables.Construct an empty environment.An isomorphism between an  and a nonempty list of ]s.Get the first ]! in the underlying nonempty list.\If the remainder of the underlying nonempty list is nonempty, return the remainder after  wrapping. Otherwise, return  . Push a new  onto the stack.)Add the given key and value to the given .#Look up the given key in the given .Uses the underlying  instance.Uses the underlying  instance.Default  instance via .Default  instance via . Reasonable _ instance for .Inverse of the  instance./Converts to a (nonempty) array of JSON objects.`a  `aCopyright 2017 Awake Security Apache-2.0opensource@awakesecurity.com experimentalNone*023459:;<=DT[]The set of constraints required for a given constraint to be automatically computed for a .CAn expression containing variable references in the Ninja language.Sequencing of expressions.A literal string.A variable reference.A prism for the  constructor.A prism for the  constructor.A prism for the  constructor.Evaluate the given  in the given context (Env  ).mLook up the given variable in the given context, returning the empty string if the variable was not found.#Add a binding with the given name ( ) and value () to the given context.Add bindings from a list. Note that this function evaluates all the right-hand-sides first, and then adds them all to the environment. For example::set -XOverloadedStrings2let binds = [("x", Lit () "5"), ("y", Var () "x")](AST.headEnv (addBinds binds AST.makeEnv)fromList [("x","5"),("y","")] Normalize an  by recursively flattening any  nodes, removing empty  nodes, combining adjacent 9 nodes, and pulling out the interior of the top-level ! node if it has only one subnode.The number of 0 nodes in the output is guaranteed to be 0 or 1.EIf it is 0, then there is exactly one node of any type in the output.!The output is thus isomorphic to &(Maybe ann, [(ann, Either Text Text)]), where the  Maybe ann, represents the annotation of the top-level  node if it exists.Default  instance via .Default  instance via .Default  instance via .Default  instance via . Reasonable _ instance for .Inverse of the  instance.  Converts  to {ann: &, exprs: [ &]},  to {ann: &, lit: [ &]} , and  to {ann: &, var: &}. The usual definition for . The usual definition for +.       Copyright 2017 Awake Security Apache-2.0opensource@awakesecurity.com experimentalNone!"*23459:;<=D ]The set of constraints required for a given constraint to be automatically computed for a .A parsed Ninja rule declaration. Construct a  with all default values?The set of bindings in scope during the execution of this rule.Default  instance via .Default  instance via .Default  instance via .Default  instance via . Reasonable _ instance for .Inverse of the  instance. Converts to {ann: &, bind: &}.The usual definition for .bcd bcdCopyright 2017 Awake Security Apache-2.0opensource@awakesecurity.com experimentalNone!"*23459:;<=D%]The set of constraints required for a given constraint to be automatically computed for a Ninja.&"A set of Ninja build dependencies.' Construct a & with all default values(0A lens into the set of normal dependencies in a &.)2A lens into the set of implicit dependencies in a &.*4A lens into the set of order-only dependencies in a &.+Default  instance via .,Default  instance via .-Default  instance via ..Default  instance via ./ Reasonable _ instance for &.0Inverse of the  instance.1 Converts to /{ann: &, normal: &, implicit: &, order-only: &}.2The usual definition for .%&efghi'()*+,-./012%&'()*&'()*%%&efghi'()*+,-./012Copyright 2017 Awake Security Apache-2.0opensource@awakesecurity.com experimentalNone!"*23459:;<=D9]The set of constraints required for a given constraint to be automatically computed for a :.:A parsed Ninja build declaration.; Construct a : with all default values.<,A lens into the rule name associated with a :.=.A lens into the environment associated with a :.>/A lens into the dependencies associated with a :.?+A lens into the bindings associated with a :.@Default  instance via .ADefault  instance via .BDefault  instance via .CDefault  instance via .D Reasonable _ instance for :.EInverse of the  instance.F Converts to +{ann: &, rule: &, env: &, deps: &, bind: &}.GThe usual definition for .9:jklmno; The rule nameThe environment<=>?@ABCDEFG9:;<=>?:;<=>?99:jklmno;<=>?@ABCDEFGCopyright 2017 Awake Security Apache-2.0opensource@awakesecurity.com experimentalNone!"*23459:;<=DN#A type representing an output of a build declaration.O-A type representing the set of outputs for a build& declaration with multiple outputs.P]The set of constraints required for a given constraint to be automatically computed for a Q.QA parsed Ninja file.R Construct a Q with all default valuesS)The rules defined in a parsed Ninja file.T The set of build( declarations with precisely one output.U The set of build' declarations with two or more outputs.VThe set of phony build declarations.WThe set of default targets.X1A mapping from pool names to pool depth integers.Y9A map from "special" top-level variables to their values.ZDefault  instance via .[Default  instance via .\Default  instance via .]Default  instance via .^ Reasonable _ instance for Q._Inverse of the  instance.`Converts to `{ann: &, rules: &, singles: &, multiples: &, phonys: &, defaults: &, pools: &, specials: &}.aThe usual definition for .NOPQpqrstuvwxRSTUVWXYZ[\]^_`a NOPQRSTUVWXY QRSTUVWXYPONNOPQ pqrstuvwxRSTUVWXYZ[\]^_`aCopyright 2017 Awake Security Apache-2.0opensource@awakesecurity.com experimentalNone)&'()*:;<=>?QRSTUVWXY)QRSTUVWXY:;<=>?&'()*Copyright 2017 Awake Security Apache-2.0opensource@awakesecurity.com experimentalNone:<=T[h@Compile an parsed Ninja file into a intermediate representation.hhhh!Copyright 2011-2017 Neil MitchellBSD3opensource@awakesecurity.com experimentalNone!"*23459:;<=DIT[9i^The set of constraints required for a given constraint to be automatically computed for an j.j"The data contained within a Ninja build declaration.p^The set of constraints required for a given constraint to be automatically computed for an q.q1A Ninja variable binding, top-level or otherwise.v^The set of constraints required for a given constraint to be automatically computed for an w.wA reference to a file in an include or subninja declaration.z^The set of constraints required for a given constraint to be automatically computed for an {.{!The name of a Ninja rule or pool.^The set of constraints required for a given constraint to be automatically computed for an .2Lex each line separately, rather than each lexeme.  foo = bar [indent]foo = bar  include file  subninja file build foo: bar | baz || qux  rule name  pool name default foo barThis class is kind of like  DeltaParsing from trifecta..The type of annotations returned by the lexer.A  megaparsec parser.!Surround a section of parsers in $ calls and return the associated Am. Note that if a call of this function wraps over a parser that somehow goes over multiple files, it will y.Constructor for an j.Default  instance via .Uses the underlying  instances.Default  instance via .Default  instance via .Inverse of the  instance. Converts to #{ann: &, outs: &, rule: &, deps: &}.The usual definition for .Default  instance via .Default  instance via .Default  instance via .Default  instance via .Inverse of the  instance. Converts to {ann: &, name: &, value: &}.Default  instance via .Default  instance via .Default  instance via .Default  instance via .Inverse of the  instance. Converts to  {file: &}.Default  instance via .Uses the underlying  instances.Default  instance via .Default  instance via .Inverse of the  instance. Converts to {ann: &, name: &}.The usual definition for .Default  instance via .Default  instance via .Default  instance via .Default  instance via .Inverse of the  instance. Converts to {ann: &, tag: &, value: &}.The usual definition for . Instance for z from  megaparsec.Hijklmnopqrstuvwxyz{|}~The build annotationThe build outputs The rule nameThe build dependencies&ijklmnopqrstuvwxyz{|}~&{|}~wxyqrstujklmnozvpi1ijklmnopqrstuvwxyz{|}~!Copyright 2011-2017 Neil MitchellBSD3opensource@awakesecurity.com experimentalNone*:<=T YLex the file at the given path. This function may throw an exception if parsing fails.Lex the given ;. This function may throw an exception if parsing fails.Lex the given {;. This function may throw an exception if parsing fails.Lex the given file.Lex the given .Lex the given  !.Lex the given  that comes from the given $, if provided.Lex the given { that comes from the given $, if it is provided. The $! is only used for error messages.The  megaparsec parser for a Ninja file.#|}~)jklmnoqrstuwxy{|}~){|}~wxyqrstujklmno#|}~!Copyright 2011-2017 Neil MitchellBSD3opensource@awakesecurity.com experimentalNone%&*9:;<=OT[ (Parse the file at the given path into a Q;. This function may throw an exception if parsing fails.Parse the given  into a Q;. This function may throw an exception if parsing fails.Parse the given { into a Q;. This function may throw an exception if parsing fails.Parse the given list of  s into a Q;. This function may throw an exception if parsing fails.(Parse the file at the given path into a Q.Parse the given  into a Q.Parse the given { into a Q.Parse the given list of  s into a Q.[Parse the file at the given path using the given Ninja variable context, resulting in a Q.Parse the given ; using the given Ninja variable context, resulting in a Q.Parse the given {; using the given Ninja variable context, resulting in a Q.Parse the given list of  s into a Q.!  !Copyright 2017 Awake Security Apache-2.0opensource@awakesecurity.com experimentalNone %Pretty-print a list of Ninja lexemes.Pretty-print a Ninja lexeme.Pretty-print a Q.Pretty-print an Pretty-print a Ninja rule declaration.Pretty-print a Ninja build declaration with one output.Pretty-print a Ninja build# declaration with multiple outputs.Pretty-print a Ninja phony build declaration.Pretty-print a Ninja default declaration.Pretty-print a Ninja pool declaration.&Pretty-print a Ninja indented binding.    "Copyright 2017 Awake Security Apache-2.0opensource@awakesecurity.com experimentalNone#Copyright 2017 Awake Security Apache-2.0opensource@awakesecurity.com experimentalNoner$%&'()89<=>?@ABCDEFGHIJKLMNQRSTUVWXYhjklmnoqrstuwxy{|}~$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                     ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            !"#$%&'()*+,-./01672TUVW3XY4cef56789:;<=>?@ABCDEFGHIJKuvwxLzM{|}~NOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLM  N O P Q R S TU V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q rstuvwxyz{|[}~ijlmpqr!+language-ninja-0.2.0-4aVVODOvkNMFxGcRpnztagLanguage.Ninja.Misc.PositiveLanguage.Ninja.Misc.ITextLanguage.Ninja.Misc.PathLanguage.Ninja.Mock.ReadFileLanguage.Ninja.Misc.LocatedLanguage.Ninja.Misc.CommandLanguage.Ninja.Misc.AnnotatedLanguage.Ninja.IR.TargetLanguage.Ninja.IR.PoolLanguage.Ninja.IR.RuleLanguage.Ninja.IR.MetaLanguage.Ninja.IR.BuildLanguage.Ninja.IR.NinjaLanguage.Ninja.Errors.ParserLanguage.Ninja.Errors.CompileLanguage.Ninja.ErrorsLanguage.Ninja.AST.EnvLanguage.Ninja.AST.ExprLanguage.Ninja.AST.RuleLanguage.Ninja.AST.DepsLanguage.Ninja.AST.BuildLanguage.Ninja.AST.NinjaLanguage.Ninja.CompileLanguage.Ninja.Lexer.TypesLanguage.Ninja.LexerLanguage.Ninja.ParserLanguage.Ninja.PrettyLanguage.Ninja.MockLanguage.Ninja.MiscLanguage.Ninja.IRLanguage.Ninja.ASTBSC8 ByteStringLanguage.Ninja.TutorialLanguage.NinjaPositive makePositive fromPositive$fCoSerialmPositive$fSerialmPositive $fNumPositive $fEqPositive $fOrdPositive$fRealPositive$fIntegralPositive$fEnumPositive$fShowPositive$fReadPositive$fGenericPositive$fHashablePositive$fNFDataPositive$fToJSONPositive$fFromJSONPositiveIText uninternText internTextitext$fCoSerialmIText$fSerialmIText$fFromJSONKeyIText$fToJSONKeyIText$fFromJSONIText $fToJSONIText $fNFDataIText$fHashableIText $fReadIText $fShowIText $fOrdIText $fEqIText$fIsStringIText$fGenericITextPathmakePath pathITextpathText pathStringpathFP$fCoSerialmPath $fSerialmPath$fEqPath $fOrdPath $fShowPath $fReadPath$fIsStringPath $fGenericPath$fHashablePath $fNFDataPath $fToJSONPath$fFromJSONPath$fToJSONKeyPath$fFromJSONKeyPath MonadReadFilereadFile$fMonadReadFilet$fMonadReadFileIOColumnLineOffsetPositionSpanSpansLocatedtokenize tokenizeFile tokenizeText locatedPos locatedVal makeSpansspansSetmakeSpanspanPath spanRange spanStartspanEnd spanStartPos spanEndPos makePosition positionFilepositionOffset positionLine positionColcomparePosition compareOffset offsetLine offsetColumn$fCoSerialmPosition$fSerialmPosition$fNFDataPosition$fHashablePosition$fFromJSONPosition$fToJSONPosition$fCoSerialmSpan $fSerialmSpan $fNFDataSpan$fHashableSpan$fFromJSONSpan $fToJSONSpan$fCoSerialmSpans$fSerialmSpans$fCoSerialmLocated$fSerialmLocated$fNFDataLocated$fHashableLocated$fFromJSONLocated$fToJSONLocated$fEqSpan $fShowSpan $fGenericSpan $fEqSpans $fShowSpans$fSemigroupSpans $fMonoidSpans$fGenericSpans $fToJSONSpans$fFromJSONSpans$fHashableSpans $fNFDataSpans $fEqPosition$fShowPosition$fGenericPosition $fEqLocated $fShowLocated$fGenericLocated$fFunctorLocated$fFoldableLocated$fTraversableLocated $fEqChunk $fShowChunk $fEqChunks $fShowChunksCommand makeCommand commandText$fCoSerialmCommand$fSerialmCommand $fEqCommand $fOrdCommand $fShowCommand $fReadCommand$fGenericCommand$fHashableCommand$fNFDataCommand$fToJSONCommand$fFromJSONCommand Annotated annotation' annotationDependencyTypeNormalDependencyOrderOnlyDependency DependencyOutputTarget makeTarget targetIText targetText makeOutput outputTargetmakeDependencydependencyTargetdependencyType_NormalDependency_OrderOnlyDependency$fCoSerialmDependencyType$fSerialmDependencyType$fNFDataDependencyType$fHashableDependencyType$fFromJSONDependencyType$fToJSONDependencyType$fCoSerialmDependency$fSerialmDependency$fNFDataDependency$fHashableDependency$fFromJSONDependency$fToJSONDependency$fCoSerialmOutput$fSerialmOutput$fNFDataOutput$fHashableOutput$fFromJSONOutput$fToJSONOutput$fCoSerialmTarget$fSerialmTarget $fEqTarget $fOrdTarget $fShowTarget $fReadTarget$fIsStringTarget$fGenericTarget$fHashableTarget$fNFDataTarget$fToJSONTarget$fFromJSONTarget$fToJSONKeyTarget$fFromJSONKeyTarget $fEqOutput $fOrdOutput $fShowOutput $fReadOutput$fGenericOutput$fEqDependencyType$fOrdDependencyType$fShowDependencyType$fReadDependencyType$fGenericDependencyType$fEqDependency$fOrdDependency$fShowDependency$fReadDependency$fGenericDependency PoolDepthPoolNamePoolmakePoolmakePoolDefaultmakePoolConsolemakePoolCustompoolName poolDepthmakePoolNameDefaultmakePoolNameConsolemakePoolNameCustom_PoolNameDefault_PoolNameConsole_PoolNameCustom poolNameText printPoolName parsePoolName makePoolDepthmakePoolInfinitepoolDepthPositive$fNFDataPoolDepth$fHashablePoolDepth$fCoSerialmPoolDepth$fSerialmPoolDepth$fFromJSONPoolDepth$fToJSONPoolDepth$fNFDataPoolName$fHashablePoolName$fCoSerialmPoolName$fSerialmPoolName$fFromJSONKeyPoolName$fToJSONKeyPoolName$fFromJSONPoolName$fToJSONPoolName$fIsStringPoolName $fNFDataPool$fHashablePool$fCoSerialmPool $fSerialmPool$fFromJSONPool $fToJSONPool $fEqPoolName $fOrdPoolName$fShowPoolName$fReadPoolName$fGenericPoolName $fEqPoolDepth$fOrdPoolDepth$fShowPoolDepth$fReadPoolDepth$fGenericPoolDepth$fEqPool $fOrdPool $fShowPool $fReadPool $fGenericPool ResponseFile SpecialDepsRulemakeRuleruleName ruleCommandruleDescriptionrulePool ruleDepfileruleSpecialDeps ruleGenerator ruleRestatruleResponseFilemakeSpecialDepsGCCmakeSpecialDepsMSVC_SpecialDepsGCC_SpecialDepsMSVCmakeResponseFileresponseFilePathresponseFileContent$fCoSerialmResponseFile$fSerialmResponseFile$fNFDataResponseFile$fHashableResponseFile$fFromJSONResponseFile$fToJSONResponseFile$fCoSerialmSpecialDeps$fSerialmSpecialDeps$fNFDataSpecialDeps$fHashableSpecialDeps$fFromJSONSpecialDeps$fToJSONSpecialDeps$fCoSerialmRule $fSerialmRule $fNFDataRule$fHashableRule$fFromJSONRule $fToJSONRule$fEqSpecialDeps$fOrdSpecialDeps$fShowSpecialDeps$fReadSpecialDeps$fGenericSpecialDeps$fEqResponseFile$fOrdResponseFile$fShowResponseFile$fGenericResponseFile$fEqRule $fOrdRule $fShowRule $fGenericRuleMetamakeMetametaReqVersion metaBuildDir$fCoSerialmMeta $fSerialmMeta $fNFDataMeta$fHashableMeta$fFromJSONMeta $fToJSONMeta$fEqMeta $fOrdMeta $fShowMeta $fGenericMetaBuildConstraintBuild makeBuild buildRule buildOuts buildDeps$fCoSerialmBuild$fSerialmBuild $fNFDataBuild$fHashableBuild$fFromJSONBuild $fToJSONBuild $fEqBuild $fShowBuild$fGenericBuildNinjaConstraintNinja makeNinja ninjaMeta ninjaBuilds ninjaPhonys ninjaDefaults ninjaPools$fCoSerialmNinja$fSerialmNinja $fNFDataNinja$fHashableNinja$fFromJSONNinja $fToJSONNinja $fEqNinja $fShowNinja$fGenericNinja ParseErrorGenericParseErrorLexBindingFailureLexExpectedColonLexUnexpectedDollarLexUnexpectedSeparatorLexParsecErrorParseBadDepthFieldParseUnexpectedBindingthrowParseErrorthrowGenericParseErrorthrowLexBindingFailurethrowLexExpectedColonthrowLexUnexpectedDollarthrowLexUnexpectedSeparatorthrowLexParsecErrorthrowParseBadDepthFieldthrowParseUnexpectedBinding$fToJSONParseError$fExceptionParseError$fEqParseError$fShowParseError$fGenericParseErrorCompilePoolErrorGenericCompilePoolErrorInvalidPoolDepth EmptyPoolNameCompileRuleErrorGenericCompileRuleErrorRuleLookupFailureUnknownDepsValueUnexpectedMSVCPrefixCompileBuildErrorGenericCompileBuildErrorBuildRuleNotFoundCompileDefaultErrorGenericCompileDefaultErrorCompilePhonyErrorGenericCompilePhonyErrorCompileMetaErrorGenericCompileMetaErrorVersionParseFailure CompileErrorGenericCompileErrorthrowCompileErrorthrowGenericCompileErrorthrowCompileMetaErrorthrowGenericCompileMetaErrorthrowVersionParseFailurethrowCompilePhonyErrorthrowGenericCompilePhonyErrorthrowCompileDefaultErrorthrowGenericCompileDefaultErrorthrowCompileBuildErrorthrowGenericCompileBuildErrorthrowBuildRuleNotFoundthrowCompileRuleErrorthrowGenericCompileRuleErrorthrowRuleLookupFailurethrowUnknownDepsthrowUnexpectedMSVCPrefixthrowCompilePoolErrorthrowGenericCompilePoolErrorthrowInvalidPoolDepththrowEmptyPoolName$fToJSONCompilePoolError$fToJSONCompileRuleError$fToJSONCompileBuildError$fToJSONCompileDefaultError$fToJSONCompilePhonyError$fToJSONCompileMetaError$fToJSONCompileError$fExceptionCompileError$fEqCompileMetaError$fShowCompileMetaError$fGenericCompileMetaError$fEqCompilePhonyError$fShowCompilePhonyError$fGenericCompilePhonyError$fEqCompileDefaultError$fShowCompileDefaultError$fGenericCompileDefaultError$fEqCompileBuildError$fShowCompileBuildError$fGenericCompileBuildError$fEqCompileRuleError$fShowCompileRuleError$fGenericCompileRuleError$fEqCompilePoolError$fShowCompilePoolError$fGenericCompilePoolError$fEqCompileError$fShowCompileError$fGenericCompileError NinjaErrorGenericNinjaErrorNinjaParseErrorNinjaCompileErrorthrowNinjaErrorthrowGenericNinjaErrorthrowNinjaParseErrorthrowNinjaCompileError$fExceptionNinjaError$fEqNinjaError$fShowNinjaError$fGenericNinjaErrorMapsKey EnvConstraintEnvmakeEnvfromEnvheadEnvtailEnvscopeEnvaddEnvaskEnv$fCoSerialmEnv $fSerialmEnv $fNFDataEnv $fHashableEnv$fArbitraryEnv $fFromJSONEnv $fToJSONEnv$fEqEnv $fShowEnv $fGenericEnvExprConstraintExprExprsLitVar_Exprs_Lit_VaraskExpraskVaraddBindaddBinds normalizeExpr$fCoSerialmExpr $fSerialmExpr $fNFDataExpr$fHashableExpr$fArbitraryExpr$fFromJSONExpr $fToJSONExpr$fAnnotatedExpr $fPlatedExpr$fEqExpr $fShowExpr $fGenericExpr $fDataExpr $fFunctorExpr$fFoldableExpr$fTraversableExprRuleConstraintruleBind$fArbitraryRule$fAnnotatedRule $fFunctorRule$fFoldableRule$fTraversableRuleDepsConstraintDepsmakeDeps depsNormal depsImplicit depsOrderOnly$fCoSerialmDeps $fSerialmDeps $fNFDataDeps$fHashableDeps$fArbitraryDeps$fFromJSONDeps $fToJSONDeps$fAnnotatedDeps$fEqDeps $fShowDeps $fGenericDeps $fFunctorDeps$fFoldableDeps$fTraversableDepsbuildEnv buildBind$fArbitraryBuild$fAnnotatedBuild$fFunctorBuild$fFoldableBuild$fTraversableBuildOutputs ninjaRules ninjaSinglesninjaMultiples ninjaSpecials$fArbitraryNinja$fAnnotatedNinja$fFunctorNinja$fFoldableNinja$fTraversableNinjacompileLBuildConstraintLBuildMkLBuild _lbuildAnn _lbuildOuts _lbuildRule _lbuildDepsLBindConstraintLBindMkLBind _lbindAnn _lbindName _lbindValueLFileConstraintLFileMkLFile _lfileExprLNameConstraintLNameMkLName _lnameAnn_lnameBSLexemeConstraintLexeme LexDefineLexBind LexInclude LexSubninjaLexBuildLexRuleLexPool LexDefaultPositionParsing getPositionAnnParserspanned makeLBuild$fCoSerialmLBuild$fSerialmLBuild$fNFDataLBuild$fHashableLBuild$fFromJSONLBuild$fToJSONLBuild$fAnnotatedLBuild$fCoSerialmLBind$fSerialmLBind $fNFDataLBind$fHashableLBind$fFromJSONLBind $fToJSONLBind$fCoSerialmLFile$fSerialmLFile $fNFDataLFile$fHashableLFile$fFromJSONLFile $fToJSONLFile$fCoSerialmLName$fSerialmLName $fNFDataLName$fHashableLName$fFromJSONLName $fToJSONLName$fAnnotatedLName$fCoSerialmLexeme$fSerialmLexeme$fNFDataLexeme$fHashableLexeme$fFromJSONLexeme$fToJSONLexeme$fAnnotatedLexeme$fPositionParsingParsecT $fEqLName $fShowLName$fGenericLName$fFunctorLName$fFoldableLName$fTraversableLName $fEqLFile $fShowLFile$fGenericLFile$fFunctorLFile$fFoldableLFile$fTraversableLFile $fEqLBind $fShowLBind$fGenericLBind$fFunctorLBind$fFoldableLBind$fTraversableLBind $fEqLBuild $fShowLBuild$fGenericLBuild$fFunctorLBuild$fFoldableLBuild$fTraversableLBuild $fEqLexeme $fShowLexeme$fGenericLexeme$fFunctorLexeme$fFoldableLexeme$fTraversableLexeme lexFileIO lexTextIOlexBSIOlexFilelexTextlexBSlexTextWithPath lexBSWithPathlexemesP parseFileIO parseTextIO parseBSIOparseLexemesIO parseFile parseTextparseBS parseLexemesparseFileWithEnvparseTextWithEnvparseBSWithEnvparseLexemesWithEnv prettyLexemes prettyLexeme prettyNinja prettyExpr prettyRule prettySingleprettyMultiple prettyPhony prettyDefault prettyPool prettyBind"lens-4.15.1-JEjBGv3iqz9BBcIN8Zv8uMControl.Lens.TypeGetterghc-prim GHC.TypesIntbaseGHC.Errerror MkPositive _fromPositive$intern-0.9.1.4-3y5GzyjSPXJHNnR5wF0nnData.Interned.Internal.Text InternedText#text-1.2.2.1-FwvWBfkNJh1I1NMMegz0uYData.Text.InternalTextIso'$aeson-1.0.2.1-74HmO1L06fH9cLl3QYZuB2Data.Aeson.Types.ToJSON ToJSONKeyToJSON'hashable-1.2.6.1-1kESIAoxKUjIcRePT58baPData.Hashable.ClassHashableGHC.ShowShow Data.String fromStringshow GHC.ClassesOrdMkITextGHC.BaseString/system-filepath-0.4.13.4-5I2V1DxOjbp1WIemRJPSzrFilesystem.Path.InternalFilePathFilesystem.Path.CurrentOS decodeString encodeStringMkPath _pathITexttransformers-0.5.2.0Control.Monad.Trans.ClassliftIO makeLocatedMaybe3unordered-containers-0.2.8.0-7sRzHY7nA2MDTBp8Ugtj2E Data.HashSetHashSetOrderingNothingControl.Lens.Tuple_1_2'smallcheck-1.1.1-5AC9NnxvgVmJHHgJYIqjFFTest.SmallCheck.SeriesCoSerial GHC.GenericsGenericSerialdeepseq-1.4.2.0Control.DeepSeqNFDataChunksMkChunks fromChunksChunk ChunkText ChunkSpace ChunkLine MkPosition _positionFile _positionLine _positionColMkSpanMkSpans MkLocated _locatedPos _locatedVal chunksNil chunksCons chunksAddCharremoveWhitespace MkCommand _commandTextFunctor Data.FoldableFoldableData.Traversable TraversableControl.Lens.PlatedPlatedfmap MkDependency_dependencyTarget_dependencyTypeMkOutput _outputTargetMkTarget _targetITextControl.Lens.IsoisoJust PoolInfinitePoolNameDefaultPoolNameConsolePoolNameCustomMkPool _poolName _poolDepthFalseMkResponseFile_responseFilePath_responseFileContentSpecialDepsGCCSpecialDepsMSVCMkRule _ruleName _ruleCommand_ruleDescription _rulePool _ruleDepfile_ruleSpecialDeps_ruleGenerator _ruleRestat_ruleResponseFileMkMeta_metaReqVersion _metaBuildDirmegaparsecToAesonMkBuild _buildRule _buildOuts _buildDepsMkNinja _ninjaMeta _ninjaBuilds _ninjaPhonys_ninjaDefaults _ninjaPoolsData.List.NonEmptyNonEmptyData.HashMap.BaseHashMapEq'QuickCheck-2.9.2-Jyj4gc4JxkEIgGFLAsGhs9Test.QuickCheck.Arbitrary ArbitraryMkEnv_fromEnv_ruleAnn _ruleBindMkDeps_depsAnn _depsNormal _depsImplicit_depsOrderOnly _buildAnn _buildEnv _buildBind _ninjaAnn _ninjaRules _ninjaSingles_ninjaMultiples_ninjaSpecialsfail'megaparsec-5.2.0-GVSlOMwniDqIGdlgoypLLHText.Megaparsec.PrimParsecTbytestring-0.10.8.1Data.ByteString.InternallexemePdefinePbindPincludeP subninjaPbuildPrulePpoolPdefaultPlineEndP equationPnamePfilePoutputPexprsPexprPdollarPvarDotPvarPsymbolPspaceP lineCommentP blockCommentPindentedbeginningOfLinedebugPApplyFun ApplyFun' MonadApplyFun NinjaWithEnvparseFileInternalparseTextInternalparseBSInternalparseLexemesInternalforceIOaddSpecialVars withBinds applyStmt applyBuild applyRule applyDefault applyPool applyInclude applySubninja applyDefine splitDepsgetDepthtshow