"      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                  ! (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghc Safe-Inferred-Convert escaped sequences of characters into real& characters in a normal Python string.(The set of valid octal digits in Python.&The set of valid hex digits in Python.""(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghc Safe-Inferred24*All types which can be transformed into a #.Transform values into strings."Print just the prefix of something.Conditionally wrap parentheses around an item. %A list of things separated by commas.  D$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQ#RSTUVWXYZ[\]^_    (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghc Safe-Inferred+8Source location spanning a contiguous section of a file.No span information.4A span which is actually just one point in the file.0A span which starts and ends on different lines..A span which starts and ends on the same line.Types which have a span.A location for a syntactic entity from the source code. The location is specified by its filename, and starting row and column. %4Create a new span which encloses two spanned things.&1Construct the initial source location for a file.'EDecrement the column of a location, only if they are on the same row.($Increment the column of a location. )3Increment the column of a location by one tab stop.*5Increment the line number (row) of a location by one.+*Make a point span from the start of a span,wMake a span from two locations. Assumption: either the arguments are the same, or the left one preceeds the right one.- Combines two w into one that spans at least all the characters within both spans. Assumes the "file" part is the same in both inputs.#Get the row of the start of a span./!Get the row of the end of a span.0&Get the column of the start of a span.1$Get the column of the end of a span.* !"#$%&'()*`+,-./01abcdefgh! !"#$%&'()*+,-./01&! "#$%,-&+('*)1/0.! "#$%&'()*`+,-./01abcdefgh(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghc Safe-Inferred+e2Classification of tokens=Lexical tokens.> End of file ?*Operator: not-equals '<>'. Version 2 only.@Operator: not-equals '!='.AOperator: tilde '~'.BOperator: floor-divide '//'.COperator: modulus '%'.D"Operator: binary-shift-right '>>'.E!Operator: binary-shift-left '<<'.FOperator: binary-and '&'.GOperator: binary-xor '^'.HOperator: binary-or '|'.IOperator: exponential '**'.J#Operator: less-than-or-equals '<='.K&Operator: greater-than-or-equals '>='.LOperator: equals '=='.MOperator: less-than '<'.NOperator: greater-than '>'.OOperator: divide '/'.POperator: multiply '*'.QOperator: minus: '-'.ROperator: plus '+'.S!Delimiter: back quote character '`\'.T)Delimiter: floor-divide assignment '//='.U/Delimiter: binary-right-shift assignment '>>='.V.Delimiter: binary-left-shift assignment '<<='.W&Delimiter: binary-xor assignment '^='.X%Delimiter: binary-or assignment '|='.Y&Delimiter: binary-and assignment '&='.Z"Delimiter: power assignment '**='.[#Delimiter: modulus assignment '%='.\"Delimiter: divide assignment '/='.]#Delimiter: multiply assignment '*='^!Delimiter: minus assignment '-='._ Delimiter: plus assignment '+='.`Delimiter: assignment '='.a#Delimiter: right facing arrow '->'.b'Delimiter: ellipses (three dots) '...'.cDelimiter: colon ':'.dDelimiter: semicolon ';'.eDelimiter: comma ','.fDelimiter: dot (full stop) '.'.g#Delimiter: right curly bracket '}'.h"Delimiter: left curly bracket '{'.i$Delimiter: right square bracket ']'.j#Delimiter: left square bracket '['.k#Delimiter: right round bracket ')'.l"Delimiter: left round bracket '('.mDelimiter: at sign '@'. n"Keyword: 'exec'. (Python 2.x only)o#Keyword: 'print'. (Python 2.x only)p8Keyword: 'nonlocal' (Python 3.x only) Version 2.x only:q5Keyword: boolean disjunction 'or'. Version 3.x only:r#Keyword: boolean conjunction 'and'.sKeyword: 'not'.tKeyword: 'else'.uKeyword: 'del'.vKeyword: 'continue'.wKeyword: 'break'.xKeyword: 'pass'.yKeyword: 'import'.zKeyword: 'assert'.{Keyword: 'yield'.|Keyword: 'elif'.}Keyword: 'as'.~Keyword: 'with'.Keyword: 'global'.Keyword: 'from'.Keyword: 'for'.Keyword: 'None'. Keyword: 'finally'.Keyword: 'class'.Keyword: 'lambda'.Keyword: 'is'.Keyword: 'in'.Keyword: 'raise'.Keyword: 'except'.Keyword: 'try'.Keyword: 'Return'.Keyword: 'False'.Keyword: 'True'.Keyword: 'if'.Keyword: 'while'.Keyword: 'def'. Literal: imaginary number.Literal: floating point.Literal: long integer. Version 2 only.Literal: integer.(Literal: unicode string, version 2 only.Literal: byte string.Literal: string. Identifier.Single line comment.%Line join (backslash at end of line).Newline.Indentation: decrease.Indentation: increase.^Produce a string from a token containing detailed information. Mainly intended for debugging. 1Test if a token contains its literal source text.YProduce a string from a token which is suitable for printing as Python concrete syntax.  Invisible tokens yield an empty string.u23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~it23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~=~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>2<;:98765432 <;:9876543=~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>i(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghc Safe-Inferred+-24Augmented assignment operators.'//=''>>=''<<=''^=' '|=''&=''*=''%=''/=''*=''-=''+=' Operators.'%'/'~' (bitwise inversion of its integer argument)'//''/''-''+''*''>>''<<''&''^''|''not in''is not''is''in''<>'. Version 2 only.'!=''<=''>=''==''>''<''**''not''or''and'Slice compenent.Yield value of an expression'Yield from a generator (Version 3 only) Expressions. Version 2.6  8http://www.python.org/doc/2.6/reference/expressions.html. Version 3.1  8http://www.python.org/doc/3.1/reference/expressions.html.;String conversion (backquoted expression). Version 2 only. Parenthesised expression.Starred expression. Version 3 only.Set comprehension. Version 3 only. Set. Dictionary comprehension. Version 3 only.  Dictionary. List. List comprehension.  Generator. Generator yield. Optional Yield argument.Tuple. Can be empty. (Anonymous function definition (lambda). Unary operator application.Binary operator application. Conditional expresison.  ,Expression to evaluate if condition is True. Boolean condition.-Expression to evaluate if condition is False."Slicing, for example 'w [x:y:z]'. #Subscription, for example 'x [y]'. Function call. ;Expression yielding a callable object (such as a function).Call arguments.GUnicode literal strings (to be concatentated together). Version 2 only./Literal strings (to be concatentated together).Literal byte string.Ellipsis '...'.Literal 'None' value. Literal boolean."Literal imaginary number.$Literal floating point number.&Long literal integer. Version 2 only.'Literal integer.* Variable..4Comprehension iterator (either a 'for' or an 'if'). 5Comprehension guard. ;Comprehension 'for' component. FyComprehension. In version 3.x this can be used for lists, sets, dictionaries and generators. data Comprehension e annotLException clause. QException handler. W?Arguments to function calls, class declarations and decorators.XKeyword argument.Y Keyword name.ZExcess keyword argument.[Excess positional argument.\Ordinary argument expression.]Argument expression.`Tuple unpack parameter. Version 2 only.a$A (possibly nested) tuple parameter.cA variable name.g@Formal parameter of function definitions and lambda expressions. Version 2.6:  Phttp://www.python.org/doc/2.6/reference/compound_stmts.html#function-definitions >http://www.python.org/doc/2.6/reference/expressions.html#calls Version 3.1:  Phttp://www.python.org/doc/3.1/reference/compound_stmts.html#function-definitions >http://www.python.org/doc/3.1/reference/expressions.html#callshTuple unpack. Version 2 only.iThe tuple to unpack.jEMarker for the end of positional parameters (not a parameter itself).kRExcess keyword parameter (double asterisk before its name in the concrete syntax).lVExcess positional parameter (single asterisk before its name in the concrete syntax). mOrdinary named parameter.nParameter name.oOptional annotation.pOptional default value.s Decorator.uDecorator name.vDecorator arguments.yThe argument for a raise statement.zVersion 2 only.{=Optional expression to evaluate, and optional 'from' clause. Version 3 only.} Statements.Simple statements: Version 2.6 9http://www.python.org/doc/2.6/reference/simple_stmts.html Version 3.1 9http://www.python.org/doc/3.1/reference/simple_stmts.htmlCompound statements: Version 2.6 ;http://www.python.org/doc/2.6/reference/compound_stmts.html Version 3.1 ;http://www.python.org/doc/3.1/reference/compound_stmts.html~Exec statement. Version 2 only. Expression to exec.@Global and local environments to evaluate the expression within.Print statement. Version 2 only. Optional chevron (>>)Arguments to printDoes it end in a comma? Assertion. Expressions being asserted.Nonlocal declaration. Version 3.x only. nVariables declared nonlocal in the current block (their binding comes from bound the nearest enclosing scope).Global declaration. /Variables declared global in the current block.Expression statement. Del statement (delete). Items to delete.Continue statement (may only occur syntactically nested in a for or while loop, but not nested in a function or class definition or finally clause within that loop). Break statement (may only occur syntactically nested in a for or while loop, but not nested in a function or class definition within that loop). !Pass statement (null operation). %With statement (context management). 1Context expression(s) (yields a context manager).Suite to be managed.&Raise statement (exception throwing). $Try statement (exception handling).  Try clause.Exception handlers.]Possibly empty else clause, executed if and when control flows off the end of the try clause.Possibly empty finally clause.QReturn statement (may only occur syntactically nested in a function definition). 5Optional expression to evaluate and return to caller.,Decorated definition of a function or class. Decorators.-Function or class definition to be decorated. Augmented assignment statement. Entity to assign to.'Assignment operator (for example '+=').Expression to evaluate.Assignment statement. Entity to assign to. Expression to evaluate.&Conditional statement (if-elif-else). (Sequence of if-elif conditional clauses.)Possibly empty unconditional else clause.Class definition.  Class name.;Class argument list. In version 2.x this is only ArgExprs.  Class body.Function definition. Function name.Function parameter list.Optional result annotation.Function body. For loop. Loop variables.Loop generator.  Loop body Else clause. While loop. Loop condition. Loop body. Else clause.From ... import statement.Module to import from.Items to import.Import statement.Items to import.OA reference to the module to import from using the 'from ... import' construct.5Items imported using the 'from ... import' construct.0Import a specific list of items from the module.+Import everything exported from the module.9An entity imported using the 'from ... import' construct. Version 2.6 Nhttp://www.python.org/doc/2.6/reference/simple_stmts.html#the-import-statement Version 3.1 Nhttp://www.python.org/doc/3.1/reference/simple_stmts.html#the-import-statement!The name of the entity imported. 8An optional name to refer to the entity (the 'as' name)..An entity imported using the 'import' keyword. Version 2.6 Nhttp://www.python.org/doc/2.6/reference/simple_stmts.html#the-import-statement Version 3.1  Nhttp://www.python.org/doc/3.1/reference/simple_stmts.html#the-import-statement The name of module to import.9An optional name to refer to the entity (the 'as' name). 2A compound name constructed with the dot operator.sA block of statements. A suite is a group of statements controlled by a clause, for example, the body of a loop.  Version 2.6 ;http://www.python.org/doc/2.6/reference/compound_stmts.html Version 3.1 ;http://www.python.org/doc/3.1/reference/compound_stmts.htmlA module (Python source file).  Version 2.6 @http://www.python.org/doc/2.6/reference/toplevel_components.html Version 3.1  @http://www.python.org/doc/3.1/reference/toplevel_components.html 4A module is just a sequence of top-level statements. Identifier.5Convenient access to annotations in annotated types. :Given an annotated type, project out its annotation value.n      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~jklmnopqrstuvwxyz{|}~C      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~}~|gmlkjhnopqnoqnoqqipqf`cadebe_stuvwr*'&$"  +,(),(),%),#),!,,,,,,,,,  ,  ,,,,,,,,,,,,,,,W\[ZX]^]^]^Y]^VQRSTUPLMNOKy{zxFGHIJEBDCA;<=>?@:567894.1/2303-b6 i*'&$"  +,(),(),%),#),!,,,,,,,,,  ,  ,,,,,,,,,,,,,,,-.1/2303456789:;<=>?@ABDCEFGHIJKLMNOPQRSTUVW \[ZX]^]^]^Y]^_`cadebefgmlkjhnopqnoqnoqqipqrstuvwxy{z|}\~jklmnopqrstuvwxyz{|}~(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghc Safe-Inferred%%(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghc Safe-Inferred(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghc Safe-Inferred@A generic error containing a string message. No source location.@An error from the lexer. Character found where it should not be.iAn error from the parser. Token found where it should not be. Note: tokens contain their own source span.(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghc Safe-Inferred (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghc Safe-Inferred)     +     +            (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghc Safe-Inferred1/!  (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghc Safe-Inferred%     %     #     (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcNone;x !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~'()m !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcNoneAParse a string into a list of Python Tokens, or return an error. Try to lex the first token in an input string. Return either a parse error or a pair containing the next token and the rest of the input after the token.Lex a sequence of tokens.'The input stream (python source code). 9The name of the python source (filename or input device).An error or a list of tokens.&The input stream (python source code).9The name of the python source (filename or input device).FAn error or the next token and the rest of the input after the token. (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcNone! *+-./02345689:;<=?BCDFGHJKM      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F / 0 1      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F   (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcNoneSParse a whole Python source file. Return comments in addition to the parsed module.Parse one compound statement, or a sequence of simple statements. Generally used for interactive input, such as from the command line of an interpreter. Return comments in addition to the parsed statements.|Parse an expression. Generally used as input for the 'eval' primitive. Return comments in addition to the parsed expression..The input stream (python module source code). :The name of the python source (filename or input device). SAn error or the abstract syntax tree (AST) of the python module and comment tokens.1The input stream (python statement source code). :The name of the python source (filename or input device). bAn error or maybe the abstract syntax tree (AST) of zero or more python statements, plus comments.1The input stream (python statement source code). :The name of the python source (filename or input device). _An error or maybe the abstract syntax tree (AST) of the python expression, plus comment tokens.(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcNone(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcNone; 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 { | } ~   [ \ ]v G J I H K N M L O S R Q P 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 { | } ~  (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcNoneAParse a string into a list of Python Tokens, or return an error. Try to lex the first token in an input string. Return either a parse error or a pair containing the next token and the rest of the input after the token.'The input stream (python source code). 9The name of the python source (filename or input device).An error or a list of tokens.&The input stream (python source code).9The name of the python source (filename or input device).FAn error or the next token and the rest of the input after the token.  (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcNone! *+-./02345689:;<=?BCDFGHJKM                           ! " # $ % & ' ( ) * + , - . / 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 { | } ~                            ! " # $ % & ' ( ) * + , - . / 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 { | } ~                            ! " # $ % & ' ( ) * + , - . / 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 { | } ~                            ! " # $ % & ' ( ) * + , - . / 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 { | } ~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./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 { | } ~                            ! " # $ % & ' ( ) * + , - . / 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 { | } ~                            ! " # $ % & ' ( ) * + , - . / 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 { | } ~                            ! " # $ % & ' ( ) * + , - . / 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 { | } ~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~   (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcNoneSParse a whole Python source file. Return comments in addition to the parsed module. Parse one compound statement, or a sequence of simple statements. Generally used for interactive input, such as from the command line of an interpreter. Return comments in addition to the parsed statements.!|Parse an expression. Generally used as input for the 'eval' primitive. Return comments in addition to the parsed expression..The input stream (python module source code). :The name of the python source (filename or input device). SAn error or the abstract syntax tree (AST) of the python module and comment tokens. 1The input stream (python statement source code). :The name of the python source (filename or input device). bAn error or maybe the abstract syntax tree (AST) of zero or more python statements, plus comments.!1The input stream (python statement source code). :The name of the python source (filename or input device). _An error or maybe the abstract syntax tree (AST) of the python expression, plus comment tokens. ! ! !(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcNone !(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghc Safe-Inferred $%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQ#RSTUVWXYZ[\]^_  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLLMNOPQQRSTUVWXWYZZ[\]^__`abccdefghijklmnopqqrstuvwxyz{|}~                                           ! " # $   " # $%&'(&')&'*&'+&',&'-&'.&'/&'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&'cdefghijklmnopqrstuvwxyz{|}~  )      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ F G H I J K L M N !      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ O P Q R S T U V W X      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  ! " # $ % & Y Z [ \ ] ^ _ ` a b c d ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E elanguage-python-0.5.0#Language.Python.Common.StringEscapeLanguage.Python.Common.Pretty"Language.Python.Common.SrcLocationLanguage.Python.Common.TokenLanguage.Python.Common.AST"Language.Python.Common.PrettyToken!Language.Python.Common.ParseError'Language.Python.Common.PrettyParseError"Language.Python.Common.ParserMonadLanguage.Python.Version3.LexerLanguage.Python.Version3.ParserLanguage.Python.Version2.LexerLanguage.Python.Version2.Parser Language.Python.Common.PrettyAST"Language.Python.Common.ParserUtils!Language.Python.Common.LexerUtils%Language.Python.Version3.Parser.Lexer&Language.Python.Version3.Parser.ParserLanguage.Python.Version3%Language.Python.Version2.Parser.Lexer&Language.Python.Version2.Parser.ParserLanguage.Python.Version2Language.Python.CommonunescapeStringunescapeRawString octalDigits hexDigitsPrettypretty prettyText prettyPrefixparensIfperhaps commaList $fPrettyMaybe $fPrettyBool$fPrettyDouble$fPrettyInteger $fPrettyInt $fPretty[]SrcSpan SpanEmpty SpanPoint span_column SpanMultiLinespan_start_row span_end_row SpanCoLinear span_filenamespan_rowspan_start_columnspan_end_columnSpangetSpan SrcLocation NoLocationSloc sloc_filenamesloc_row sloc_columnspanninginitialSrcLocation decColumn incColumnincTabincLinespanStartPoint mkSrcSpancombineSrcSpansstartRowendRowstartColendCol TokenClass AssignmentOperatorStringKeywordLayoutBracket Punctuation IdentifierNumberCommentTokenEOFTokenNotEqualsV2TokenNotEqualsToken TildeToken FloorDivToken ModuloTokenShiftRightTokenShiftLeftTokenBinaryAndTokenXorToken BinaryOrToken ExponentTokenLessThanEqualsTokenGreaterThanEqualsToken EqualityToken LessThanTokenGreaterThanTokenDivToken MultToken MinusToken PlusTokenBackQuoteTokenFloorDivAssignTokenRightShiftAssignTokenLeftShiftAssignTokenBinXorAssignTokenBinOrAssignTokenBinAndAssignTokenPowAssignTokenModAssignTokenDivAssignTokenMultAssignTokenMinusAssignTokenPlusAssignToken AssignTokenRightArrowToken EllipsisToken ColonTokenSemiColonToken CommaTokenDotTokenRightBraceTokenLeftBraceTokenRightSquareBracketTokenLeftSquareBracketTokenRightRoundBracketTokenLeftRoundBracketTokenAtToken ExecToken PrintToken NonLocalTokenOrTokenAndTokenNotToken ElseToken DeleteToken ContinueToken BreakToken PassToken ImportToken AssertToken YieldToken ElifTokenAsToken WithToken GlobalToken FromTokenForToken NoneToken FinallyToken ClassToken LambdaTokenIsTokenInToken RaiseToken ExceptTokenTryToken ReturnToken FalseToken TrueTokenIfToken WhileTokenDefTokenImaginaryToken FloatToken token_doubleLongIntegerToken IntegerToken token_integerUnicodeStringTokenByteStringToken StringTokenIdentifierToken CommentToken token_literal LineJoinToken NewlineToken DedentToken IndentToken token_spandebugTokenString hasLiteral classifyToken tokenString AssignOpSpanAssignOpFloorDivAssignRightShiftAssignLeftShiftAssign BinXorAssign BinOrAssign BinAndAssign PowAssign ModAssign DivAssign MultAssign MinusAssign PlusAssignassignOp_annotOpSpanOpModuloInvert FloorDivideDivideMinusPlusMultiply ShiftRight ShiftLeft BinaryAndXorBinaryOrNotInIsNotIsIn NotEqualsV2 NotEqualsLessThanEqualsGreaterThanEqualsEquality GreaterThanLessThanExponentNotOrAndop_annot SliceSpanSlice SliceEllipsis SliceExpr slice_expr SliceProper slice_lower slice_upper slice_stride slice_annotDictMappingPairSpanDictMappingPair YieldArgSpanYieldArg YieldExpr YieldFromExprSpanExprStringConversionbackquoted_expr expr_anotParen paren_exprStarred starred_exprSetCompset_comprehensionSet set_exprsDictCompdict_comprehension Dictionary dict_mappingsList list_exprsListComplist_comprehension Generatorgen_comprehensionYield yield_argTuple tuple_exprsLambda lambda_args lambda_bodyDotdot_expr dot_attributeUnaryOpop_argBinaryOpoperator left_op_arg right_op_argCondExprce_true_branch ce_conditionce_false_branch SlicedExprsliceeslices Subscript subscripteesubscript_exprCallcall_fun call_argsUnicodeStringsunicodestrings_stringsStringsstrings_strings ByteStringsbyte_string_stringsEllipsisNoneBool bool_value Imaginaryimaginary_valueFloat float_valueLongIntInt int_value expr_literalVar var_ident expr_annot CompIterSpanCompIterIterIf comp_iter_ifIterFor comp_iter_forcomp_iter_annot CompIfSpanCompIfcomp_if comp_if_iter comp_if_annot CompForSpanCompForcomp_for_exprs comp_in_expr comp_for_itercomp_for_annotComprehensionExprSpanComprehensionExprComprehensionDictComprehensionSpan Comprehensioncomprehension_exprcomprehension_forcomprehension_annotExceptClauseSpan ExceptClause except_clauseexcept_clause_annot HandlerSpanHandlerhandler_clause handler_suite handler_annot ArgumentSpanArgument ArgKeyword arg_keywordArgVarArgsKeyword ArgVarArgsPosArgExprarg_expr arg_annotParamTupleSpan ParamTuple param_tupleParamTupleNameparam_tuple_nameparam_tuple_annot ParameterSpan Parameter UnPackTupleparam_unpack_tuple EndPositionalVarArgsKeyword VarArgsPosParam param_nameparam_py_annotation param_default param_annot DecoratorSpan Decoratordecorator_namedecorator_argsdecorator_annot RaiseExprSpan RaiseExprRaiseV2RaiseV3 StatementSpan StatementExec exec_exprexec_globals_localsPrint print_chevron print_exprsprint_trailing_commaAssert assert_exprsNonLocal nonLocal_varsGlobal global_varsStmtExpr stmt_exprDelete del_exprsContinueBreakPassWith with_context with_bodyRaise raise_exprTrytry_body try_exceptstry_else try_finallyReturn return_expr Decorateddecorated_decorators decorated_defAugmentedAssign aug_assign_to aug_assign_opaug_assign_exprAssign assign_to assign_expr Conditional cond_guards cond_elseClass class_name class_args class_bodyFunfun_namefun_argsfun_result_annotationfun_bodyFor for_targets for_generatorfor_bodyfor_elseWhile while_cond while_body while_else FromImport from_module from_itemsImport import_items stmt_annotImportRelativeSpanImportRelativeimport_relative_dotsimport_relative_moduleimport_relative_annot FromItemsSpan FromItemsfrom_items_itemsImportEverythingfrom_items_annot FromItemSpanFromItemfrom_item_name from_as_namefrom_item_annotImportItemSpan ImportItemimport_item_nameimport_as_nameimport_item_annotDottedNameSpan DottedName SuiteSpanSuite ModuleSpanModule IdentSpanIdent ident_string ident_annot Annotatedannot $fPrettyToken ParseErrorStrErrorUnexpectedCharUnexpectedToken$fPrettyParseErrorP ParseStatelocationinput previousTokenstartCodeStack indentStack parenStacklastEOLcomments spanError initialState execParserexecParserKeepComments runParserreturnPthenP setLastEOL getLastEOL setLocation getLocationgetInputsetInput getLastToken setLastToken pushStartCode popStartCode getStartCode pushIndent popIndent getIndentgetIndentStackDepth pushParenpopParengetParengetParenStackDepth addComment getComments initLexStatelex lexOneTokenlexer parseModule parseStmt parseExprunescapeNumericpretty-1.1.1.1Text.PrettyPrint.HughesPJDoc fullRender renderStylerenderstylefsepfcatcatsep<+><>$+$$$ punctuatehangnestvcathsephcatbracesbracketsparens doubleQuotesquotesrationaldoublefloatintegerintrbracelbracerbracklbrackrparenlparenequalsspacecoloncommasemiisEmptyempty zeroWidthText sizedTextptexttextcharChrStrPStr TextDetailsribbonsPerLine lineLengthmodeStylePageMode ZigZagModeLeftMode OneLineModeModeprettyMultiSpan$fSpanSrcLocation$fPrettySrcSpan $fSpanSrcSpan $fSpan(,) $fSpanEither $fSpanMaybe$fSpan[]$fPrettySrcLocation $fSpanToken$fAnnotatedAssignOp$fSpanAssignOp $fAnnotatedOp$fSpanOp$fAnnotatedSlice $fSpanSlice$fSpanDictMappingPair$fAnnotatedExpr$fSpanYieldArg $fSpanExpr$fAnnotatedCompIter$fSpanCompIter$fAnnotatedCompIf $fSpanCompIf$fAnnotatedCompFor $fSpanCompFor$fSpanComprehensionExpr$fAnnotatedComprehension$fSpanComprehension$fAnnotatedExceptClause$fSpanExceptClause$fAnnotatedHandler $fSpanHandler$fAnnotatedArgument$fSpanArgument$fAnnotatedParamTuple$fSpanParamTuple$fAnnotatedParameter$fSpanParameter$fAnnotatedDecorator$fSpanDecorator$fAnnotatedStatement$fSpanStatement$fAnnotatedImportRelative$fSpanImportRelative$fAnnotatedFromItems$fSpanFromItems$fAnnotatedFromItem$fSpanFromItem$fAnnotatedImportItem$fSpanImportItem$fAnnotatedIdent $fSpanIdentdotindent blankLine prettyStringprettyDottedName prettySuiteoptionalKeywordSuiteprettyParenListprettyOptionalList prettyGuardsprettyWithContextprettyHandlers$fPrettyAssignOp $fPrettyOp $fPrettySlice$fPrettyDictMappingPair$fPrettyYieldArg $fPrettyExpr$fPrettyCompIter$fPrettyCompIf$fPrettyCompFor$fPrettyComprehensionExpr$fPrettyComprehension$fPrettyArgument$fPrettyParamTuple$fPrettyParameter$fPrettyDecorator$fPrettyRaiseExpr$fPrettyExceptClause$fPrettyHandler$fPrettyStatement$fPrettyImportRelative$fPrettyFromItems$fPrettyFromItem$fPrettyImportItem $fPrettyIdent$fPrettyModule$fErrorParseError internalError initTokenSubscriptSliceEllipsisSubscriptSlicesubscript_slice_span1subscript_slice_span2subscript_slice_span3 SubscriptExpr subscriptionsubscript_spanTrailer TrailerDottrailer_dot_identdot_spanTrailerSubscript trailer_subs TrailerCalltrailer_call_args trailer_spanmakeConditionalExpr makeBinOp parseError isProperSlicesubscriptToSlicesubscriptToExprsubscriptsToExpr addTrailermakeTupleOrExprmakeAssignmentOrExprmakeTry makeParam makeStarParammakeStarStarParammakeTupleParammakeComprehension makeListFormmakeSetmakeDictionary fromEither makeDecorator makeDecoratedmakeFun makeReturnmakeParenOrGenerator makePrint makeRelativecheckArgumentscheckParameters$fSpanSubscript $fSpanTrailer AlexInputAction StartCodeBOBOLBOFBytelineJoin endOfLine bolEndOfLine dedentation indentation symbolTokentokenendOfFileToken dedentToken newlineToken atEOLorEOFnotEOF readBinary readFloat readFloatRestmkString stringTokenrawStringTokenbyteStringTokenunicodeStringTokenrawByteStringToken openParen closeParen matchParenalexInputPrevChar alexGetChar alexGetBytemoveChar lexicalError readOctNoOAlexAcc AlexAccSkip AlexAccNone AlexLastAcc AlexLastSkipAlexNone AlexReturn AlexTokenAlexSkip AlexErrorAlexEOFAlexAddrAlexA# alex_base alex_table alex_check alex_deflt alex_acceptinitStartCodeStacklexTokenlexContkeywordOrIdentkeywords keywordNamesbofboldedent alex_action_0 alex_action_2 alex_action_3 alex_action_4 alex_action_5 alex_action_6 alex_action_7 alex_action_8 alex_action_9alex_action_10alex_action_11alex_action_12alex_action_13alex_action_14alex_action_15alex_action_16alex_action_17alex_action_18alex_action_19alex_action_20alex_action_21alex_action_22alex_action_23alex_action_24alex_action_25alex_action_26alex_action_27alex_action_28alex_action_29alex_action_30alex_action_31alex_action_32alex_action_33alex_action_34alex_action_35alex_action_36alex_action_37alex_action_38alex_action_39alex_action_40alex_action_41alex_action_42alex_action_43alex_action_44alex_action_45alex_action_46alex_action_47alex_action_48alex_action_49alex_action_50alex_action_51alex_action_52alex_action_53alex_action_54alex_action_55alex_action_56alex_action_57alex_action_58alex_action_59alex_action_60alex_action_61alex_action_62alex_action_63alex_action_64alex_action_65alex_action_66alex_action_67alex_action_68alex_action_69alex_action_70alex_action_71alex_action_72alex_action_73alex_action_74alex_action_75alex_action_76alex_action_77alex_action_78alex_action_79alex_action_80alex_action_81alex_action_82alex_action_83alexIndexInt16OffAddralexIndexInt32OffAddr quickIndexalexScan alexScanUser alex_scan_tkniUnbox$fFunctorAlexLastAcc HappyAddrHappyA#HappyStk Happy_IntList HappyConsHappyAny HappyAbsSynhappyIn6 happyOut6happyIn7 happyOut7happyIn8 happyOut8happyIn9 happyOut9 happyIn10 happyOut10 happyIn11 happyOut11 happyIn12 happyOut12 happyIn13 happyOut13 happyIn14 happyOut14 happyIn15 happyOut15 happyIn16 happyOut16 happyIn17 happyOut17 happyIn18 happyOut18 happyIn19 happyOut19 happyIn20 happyOut20 happyIn21 happyOut21 happyIn22 happyOut22 happyIn23 happyOut23 happyIn24 happyOut24 happyIn25 happyOut25 happyIn26 happyOut26 happyIn27 happyOut27 happyIn28 happyOut28 happyIn29 happyOut29 happyIn30 happyOut30 happyIn31 happyOut31 happyIn32 happyOut32 happyIn33 happyOut33 happyIn34 happyOut34 happyIn35 happyOut35 happyIn36 happyOut36 happyIn37 happyOut37 happyIn38 happyOut38 happyIn39 happyOut39 happyIn40 happyOut40 happyIn41 happyOut41 happyIn42 happyOut42 happyIn43 happyOut43 happyIn44 happyOut44 happyIn45 happyOut45 happyIn46 happyOut46 happyIn47 happyOut47 happyIn48 happyOut48 happyIn49 happyOut49 happyIn50 happyOut50 happyIn51 happyOut51 happyIn52 happyOut52 happyIn53 happyOut53 happyIn54 happyOut54 happyIn55 happyOut55 happyIn56 happyOut56 happyIn57 happyOut57 happyIn58 happyOut58 happyIn59 happyOut59 happyIn60 happyOut60 happyIn61 happyOut61 happyIn62 happyOut62 happyIn63 happyOut63 happyIn64 happyOut64 happyIn65 happyOut65 happyIn66 happyOut66 happyIn67 happyOut67 happyIn68 happyOut68 happyIn69 happyOut69 happyIn70 happyOut70 happyIn71 happyOut71 happyIn72 happyOut72 happyIn73 happyOut73 happyIn74 happyOut74 happyIn75 happyOut75 happyIn76 happyOut76 happyIn77 happyOut77 happyIn78 happyOut78 happyIn79 happyOut79 happyIn80 happyOut80 happyIn81 happyOut81 happyIn82 happyOut82 happyIn83 happyOut83 happyIn84 happyOut84 happyIn85 happyOut85 happyIn86 happyOut86 happyIn87 happyOut87 happyIn88 happyOut88 happyIn89 happyOut89 happyIn90 happyOut90 happyIn91 happyOut91 happyIn92 happyOut92 happyIn93 happyOut93 happyIn94 happyOut94 happyIn95 happyOut95 happyIn96 happyOut96 happyIn97 happyOut97 happyIn98 happyOut98 happyIn99 happyOut99 happyIn100 happyOut100 happyIn101 happyOut101 happyIn102 happyOut102 happyIn103 happyOut103 happyIn104 happyOut104 happyIn105 happyOut105 happyIn106 happyOut106 happyIn107 happyOut107 happyIn108 happyOut108 happyIn109 happyOut109 happyIn110 happyOut110 happyIn111 happyOut111 happyIn112 happyOut112 happyIn113 happyOut113 happyIn114 happyOut114 happyIn115 happyOut115 happyIn116 happyOut116 happyIn117 happyOut117 happyIn118 happyOut118 happyIn119 happyOut119 happyIn120 happyOut120 happyIn121 happyOut121 happyIn122 happyOut122 happyIn123 happyOut123 happyIn124 happyOut124 happyIn125 happyOut125 happyIn126 happyOut126 happyIn127 happyOut127 happyIn128 happyOut128 happyIn129 happyOut129 happyIn130 happyOut130 happyIn131 happyOut131 happyIn132 happyOut132 happyIn133 happyOut133 happyIn134 happyOut134 happyIn135 happyOut135 happyIn136 happyOut136 happyIn137 happyOut137 happyIn138 happyOut138 happyIn139 happyOut139 happyIn140 happyOut140 happyIn141 happyOut141 happyIn142 happyOut142 happyIn143 happyOut143 happyIn144 happyOut144 happyIn145 happyOut145 happyIn146 happyOut146 happyIn147 happyOut147 happyIn148 happyOut148 happyIn149 happyOut149 happyIn150 happyOut150 happyIn151 happyOut151 happyIn152 happyOut152 happyIn153 happyOut153 happyIn154 happyOut154 happyIn155 happyOut155 happyIn156 happyOut156 happyIn157 happyOut157 happyIn158 happyOut158 happyIn159 happyOut159 happyIn160 happyOut160 happyIn161 happyOut161 happyIn162 happyOut162 happyIn163 happyOut163 happyIn164 happyOut164 happyIn165 happyOut165 happyIn166 happyOut166 happyIn167 happyOut167 happyIn168 happyOut168 happyIn169 happyOut169 happyIn170 happyOut170 happyIn171 happyOut171 happyIn172 happyOut172 happyIn173 happyOut173 happyIn174 happyOut174 happyIn175 happyOut175 happyIn176 happyOut176 happyIn177 happyOut177 happyIn178 happyOut178 happyIn179 happyOut179 happyIn180 happyOut180 happyIn181 happyOut181 happyIn182 happyOut182 happyIn183 happyOut183 happyIn184 happyOut184 happyIn185 happyOut185 happyIn186 happyOut186 happyIn187 happyOut187 happyIn188 happyOut188 happyIn189 happyOut189 happyIn190 happyOut190 happyIn191 happyOut191 happyIn192 happyOut192 happyIn193 happyOut193 happyIn194 happyOut194 happyIn195 happyOut195 happyIn196 happyOut196 happyIn197 happyOut197 happyIn198 happyOut198 happyIn199 happyOut199 happyIn200 happyOut200 happyIn201 happyOut201 happyIn202 happyOut202 happyIn203 happyOut203 happyIn204 happyOut204 happyIn205 happyOut205 happyIn206 happyOut206 happyIn207 happyOut207 happyIn208 happyOut208 happyIn209 happyOut209 happyIn210 happyOut210 happyIn211 happyOut211 happyIn212 happyOut212 happyIn213 happyOut213 happyIn214 happyOut214 happyIn215 happyOut215 happyIn216 happyOut216 happyIn217 happyOut217 happyIn218 happyOut218 happyIn219 happyOut219 happyIn220 happyOut220 happyIn221 happyOut221 happyIn222 happyOut222 happyIn223 happyOut223 happyIn224 happyOut224 happyIn225 happyOut225 happyIn226 happyOut226 happyIn227 happyOut227 happyIn228 happyOut228 happyIn229 happyOut229 happyIn230 happyOut230 happyIn231 happyOut231 happyIn232 happyOut232 happyIn233 happyOut233 happyIn234 happyOut234 happyIn235 happyOut235 happyIn236 happyOut236 happyIn237 happyOut237 happyIn238 happyOut238 happyIn239 happyOut239 happyIn240 happyOut240 happyIn241 happyOut241 happyIn242 happyOut242 happyIn243 happyOut243 happyIn244 happyOut244 happyIn245 happyOut245 happyIn246 happyOut246 happyIn247 happyOut247 happyIn248 happyOut248 happyIn249 happyOut249 happyIn250 happyOut250 happyIn251 happyOut251 happyIn252 happyOut252 happyIn253 happyOut253 happyIn254 happyOut254 happyIn255 happyOut255 happyIn256 happyOut256 happyIn257 happyOut257 happyIn258 happyOut258 happyIn259 happyOut259 happyIn260 happyOut260 happyIn261 happyOut261 happyIn262 happyOut262 happyIn263 happyOut263 happyIn264 happyOut264 happyIn265 happyOut265 happyIn266 happyOut266 happyIn267 happyOut267 happyInTok happyOutTokhappyActOffsetshappyGotoOffsetshappyDefActions happyCheck happyTablehappyReduceArr happy_n_termshappy_n_nonterms happyReduce_3happyReduction_3 happyReduce_4happyReduction_4 happyReduce_5happyReduction_5 happyReduce_6happyReduction_6 happyReduce_7happyReduction_7 happyReduce_8happyReduction_8 happyReduce_9happyReduction_9happyReduce_10happyReduction_10happyReduce_11happyReduction_11happyReduce_12happyReduction_12happyReduce_13happyReduction_13happyReduce_14happyReduction_14happyReduce_15happyReduction_15happyReduce_16happyReduction_16happyReduce_17happyReduction_17happyReduce_18happyReduction_18happyReduce_19happyReduction_19happyReduce_20happyReduction_20happyReduce_21happyReduction_21happyReduce_22happyReduction_22happyReduce_23happyReduction_23happyReduce_24happyReduction_24happyReduce_25happyReduction_25happyReduce_26happyReduction_26happyReduce_27happyReduction_27happyReduce_28happyReduction_28happyReduce_29happyReduction_29happyReduce_30happyReduction_30happyReduce_31happyReduction_31happyReduce_32happyReduction_32happyReduce_33happyReduction_33happyReduce_34happyReduction_34happyReduce_35happyReduction_35happyReduce_36happyReduction_36happyReduce_37happyReduction_37happyReduce_38happyReduction_38happyReduce_39happyReduction_39happyReduce_40happyReduction_40happyReduce_41happyReduction_41happyReduce_42happyReduction_42happyReduce_43happyReduction_43happyReduce_44happyReduction_44happyReduce_45happyReduction_45happyReduce_46happyReduction_46happyReduce_47happyReduction_47happyReduce_48happyReduction_48happyReduce_49happyReduction_49happyReduce_50happyReduction_50happyReduce_51happyReduction_51happyReduce_52happyReduction_52happyReduce_53happyReduction_53happyReduce_54happyReduction_54happyReduce_55happyReduction_55happyReduce_56happyReduction_56happyReduce_57happyReduction_57happyReduce_58happyReduction_58happyReduce_59happyReduction_59happyReduce_60happyReduction_60happyReduce_61happyReduction_61happyReduce_62happyReduction_62happyReduce_63happyReduction_63happyReduce_64happyReduction_64happyReduce_65happyReduction_65happyReduce_66happyReduction_66happyReduce_67happyReduction_67happyReduce_68happyReduction_68happyReduce_69happyReduction_69happyReduce_70happyReduction_70happyReduce_71happyReduction_71happyReduce_72happyReduction_72happyReduce_73happyReduction_73happyReduce_74happyReduction_74happyReduce_75happyReduction_75happyReduce_76happyReduction_76happyReduce_77happyReduction_77happyReduce_78happyReduction_78happyReduce_79happyReduction_79happyReduce_80happyReduction_80happyReduce_81happyReduction_81happyReduce_82happyReduction_82happyReduce_83happyReduction_83happyReduce_84happyReduction_84happyReduce_85happyReduction_85happyReduce_86happyReduction_86happyReduce_87happyReduction_87happyReduce_88happyReduction_88happyReduce_89happyReduction_89happyReduce_90happyReduction_90happyReduce_91happyReduction_91happyReduce_92happyReduction_92happyReduce_93happyReduction_93happyReduce_94happyReduction_94happyReduce_95happyReduction_95happyReduce_96happyReduction_96happyReduce_97happyReduction_97happyReduce_98happyReduction_98happyReduce_99happyReduction_99happyReduce_100happyReduction_100happyReduce_101happyReduction_101happyReduce_102happyReduction_102happyReduce_103happyReduction_103happyReduce_104happyReduction_104happyReduce_105happyReduction_105happyReduce_106happyReduction_106happyReduce_107happyReduction_107happyReduce_108happyReduction_108happyReduce_109happyReduction_109happyReduce_110happyReduction_110happyReduce_111happyReduction_111happyReduce_112happyReduction_112happyReduce_113happyReduction_113happyReduce_114happyReduction_114happyReduce_115happyReduction_115happyReduce_116happyReduction_116happyReduce_117happyReduction_117happyReduce_118happyReduction_118happyReduce_119happyReduction_119happyReduce_120happyReduction_120happyReduce_121happyReduction_121happyReduce_122happyReduction_122happyReduce_123happyReduction_123happyReduce_124happyReduction_124happyReduce_125happyReduction_125happyReduce_126happyReduction_126happyReduce_127happyReduction_127happyReduce_128happyReduction_128happyReduce_129happyReduction_129happyReduce_130happyReduction_130happyReduce_131happyReduction_131happyReduce_132happyReduction_132happyReduce_133happyReduction_133happyReduce_134happyReduction_134happyReduce_135happyReduction_135happyReduce_136happyReduction_136happyReduce_137happyReduction_137happyReduce_138happyReduction_138happyReduce_139happyReduction_139happyReduce_140happyReduction_140happyReduce_141happyReduction_141happyReduce_142happyReduction_142happyReduce_143happyReduction_143happyReduce_144happyReduction_144happyReduce_145happyReduction_145happyReduce_146happyReduction_146happyReduce_147happyReduction_147happyReduce_148happyReduction_148happyReduce_149happyReduction_149happyReduce_150happyReduction_150happyReduce_151happyReduction_151happyReduce_152happyReduction_152happyReduce_153happyReduction_153happyReduce_154happyReduction_154happyReduce_155happyReduction_155happyReduce_156happyReduction_156happyReduce_157happyReduction_157happyReduce_158happyReduction_158happyReduce_159happyReduction_159happyReduce_160happyReduction_160happyReduce_161happyReduction_161happyReduce_162happyReduction_162happyReduce_163happyReduction_163happyReduce_164happyReduction_164happyReduce_165happyReduction_165happyReduce_166happyReduction_166happyReduce_167happyReduction_167happyReduce_168happyReduction_168happyReduce_169happyReduction_169happyReduce_170happyReduction_170happyReduce_171happyReduction_171happyReduce_172happyReduction_172happyReduce_173happyReduction_173happyReduce_174happyReduction_174happyReduce_175happyReduction_175happyReduce_176happyReduction_176happyReduce_177happyReduction_177happyReduce_178happyReduction_178happyReduce_179happyReduction_179happyReduce_180happyReduction_180happyReduce_181happyReduction_181happyReduce_182happyReduction_182happyReduce_183happyReduction_183happyReduce_184happyReduction_184happyReduce_185happyReduction_185happyReduce_186happyReduction_186happyReduce_187happyReduction_187happyReduce_188happyReduction_188happyReduce_189happyReduction_189happyReduce_190happyReduction_190happyReduce_191happyReduction_191happyReduce_192happyReduction_192happyReduce_193happyReduction_193happyReduce_194happyReduction_194happyReduce_195happyReduction_195happyReduce_196happyReduction_196happyReduce_197happyReduction_197happyReduce_198happyReduction_198happyReduce_199happyReduction_199happyReduce_200happyReduction_200happyReduce_201happyReduction_201happyReduce_202happyReduction_202happyReduce_203happyReduction_203happyReduce_204happyReduction_204happyReduce_205happyReduction_205happyReduce_206happyReduction_206happyReduce_207happyReduction_207happyReduce_208happyReduction_208happyReduce_209happyReduction_209happyReduce_210happyReduction_210happyReduce_211happyReduction_211happyReduce_212happyReduction_212happyReduce_213happyReduction_213happyReduce_214happyReduction_214happyReduce_215happyReduction_215happyReduce_216happyReduction_216happyReduce_217happyReduction_217happyReduce_218happyReduction_218happyReduce_219happyReduction_219happyReduce_220happyReduction_220happyReduce_221happyReduction_221happyReduce_222happyReduction_222happyReduce_223happyReduction_223happyReduce_224happyReduction_224happyReduce_225happyReduction_225happyReduce_226happyReduction_226happyReduce_227happyReduction_227happyReduce_228happyReduction_228happyReduce_229happyReduction_229happyReduce_230happyReduction_230happyReduce_231happyReduction_231happyReduce_232happyReduction_232happyReduce_233happyReduction_233happyReduce_234happyReduction_234happyReduce_235happyReduction_235happyReduce_236happyReduction_236happyReduce_237happyReduction_237happyReduce_238happyReduction_238happyReduce_239happyReduction_239happyReduce_240happyReduction_240happyReduce_241happyReduction_241happyReduce_242happyReduction_242happyReduce_243happyReduction_243happyReduce_244happyReduction_244happyReduce_245happyReduction_245happyReduce_246happyReduction_246happyReduce_247happyReduction_247happyReduce_248happyReduction_248happyReduce_249happyReduction_249happyReduce_250happyReduction_250happyReduce_251happyReduction_251happyReduce_252happyReduction_252happyReduce_253happyReduction_253happyReduce_254happyReduction_254happyReduce_255happyReduction_255happyReduce_256happyReduction_256happyReduce_257happyReduction_257happyReduce_258happyReduction_258happyReduce_259happyReduction_259happyReduce_260happyReduction_260happyReduce_261happyReduction_261happyReduce_262happyReduction_262happyReduce_263happyReduction_263happyReduce_264happyReduction_264happyReduce_265happyReduction_265happyReduce_266happyReduction_266happyReduce_267happyReduction_267happyReduce_268happyReduction_268happyReduce_269happyReduction_269happyReduce_270happyReduction_270happyReduce_271happyReduction_271happyReduce_272happyReduction_272happyReduce_273happyReduction_273happyReduce_274happyReduction_274happyReduce_275happyReduction_275happyReduce_276happyReduction_276happyReduce_277happyReduction_277happyReduce_278happyReduction_278happyReduce_279happyReduction_279happyReduce_280happyReduction_280happyReduce_281happyReduction_281happyReduce_282happyReduction_282happyReduce_283happyReduction_283happyReduce_284happyReduction_284happyReduce_285happyReduction_285happyReduce_286happyReduction_286happyReduce_287happyReduction_287happyReduce_288happyReduction_288happyReduce_289happyReduction_289happyReduce_290happyReduction_290happyReduce_291happyReduction_291happyReduce_292happyReduction_292happyReduce_293happyReduction_293happyReduce_294happyReduction_294happyReduce_295happyReduction_295happyReduce_296happyReduction_296happyReduce_297happyReduction_297happyReduce_298happyReduction_298happyReduce_299happyReduction_299happyReduce_300happyReduction_300happyReduce_301happyReduction_301happyReduce_302happyReduction_302happyReduce_303happyReduction_303happyReduce_304happyReduction_304happyReduce_305happyReduction_305happyReduce_306happyReduction_306happyReduce_307happyReduction_307happyReduce_308happyReduction_308happyReduce_309happyReduction_309happyReduce_310happyReduction_310happyReduce_311happyReduction_311happyReduce_312happyReduction_312happyReduce_313happyReduction_313happyReduce_314happyReduction_314happyReduce_315happyReduction_315happyReduce_316happyReduction_316happyReduce_317happyReduction_317happyReduce_318happyReduction_318happyReduce_319happyReduction_319happyReduce_320happyReduction_320happyReduce_321happyReduction_321happyReduce_322happyReduction_322happyReduce_323happyReduction_323happyReduce_324happyReduction_324happyReduce_325happyReduction_325happyReduce_326happyReduction_326happyReduce_327happyReduction_327happyReduce_328happyReduction_328happyReduce_329happyReduction_329happyReduce_330happyReduction_330happyReduce_331happyReduction_331happyReduce_332happyReduction_332happyReduce_333happyReduction_333happyReduce_334happyReduction_334happyReduce_335happyReduction_335happyReduce_336happyReduction_336happyReduce_337happyReduction_337happyReduce_338happyReduction_338happyReduce_339happyReduction_339happyReduce_340happyReduction_340happyReduce_341happyReduction_341happyReduce_342happyReduction_342happyReduce_343happyReduction_343happyReduce_344happyReduction_344happyReduce_345happyReduction_345happyReduce_346happyReduction_346happyReduce_347happyReduction_347happyReduce_348happyReduction_348happyReduce_349happyReduction_349happyReduce_350happyReduction_350happyReduce_351happyReduction_351happyReduce_352happyReduction_352happyReduce_353happyReduction_353happyReduce_354happyReduction_354happyReduce_355happyReduction_355happyReduce_356happyReduction_356happyReduce_357happyReduction_357happyReduce_358happyReduction_358happyReduce_359happyReduction_359happyReduce_360happyReduction_360happyReduce_361happyReduction_361happyReduce_362happyReduction_362happyReduce_363happyReduction_363happyReduce_364happyReduction_364happyReduce_365happyReduction_365happyReduce_366happyReduction_366happyReduce_367happyReduction_367happyReduce_368happyReduction_368happyReduce_369happyReduction_369happyReduce_370happyReduction_370happyReduce_371happyReduction_371happyReduce_372happyReduction_372happyReduce_373happyReduction_373happyReduce_374happyReduction_374happyReduce_375happyReduction_375happyReduce_376happyReduction_376happyReduce_377happyReduction_377happyReduce_378happyReduction_378happyReduce_379happyReduction_379happyReduce_380happyReduction_380happyReduce_381happyReduction_381happyReduce_382happyReduction_382happyReduce_383happyReduction_383happyReduce_384happyReduction_384happyReduce_385happyReduction_385happyReduce_386happyReduction_386happyReduce_387happyReduction_387happyReduce_388happyReduction_388happyReduce_389happyReduction_389happyReduce_390happyReduction_390happyReduce_391happyReduction_391happyReduce_392happyReduction_392happyReduce_393happyReduction_393happyReduce_394happyReduction_394happyReduce_395happyReduction_395happyReduce_396happyReduction_396happyReduce_397happyReduction_397happyReduce_398happyReduction_398happyReduce_399happyReduction_399happyReduce_400happyReduction_400happyReduce_401happyReduction_401happyReduce_402happyReduction_402happyReduce_403happyReduction_403happyReduce_404happyReduction_404happyReduce_405happyReduction_405happyReduce_406happyReduction_406happyReduce_407happyReduction_407happyReduce_408happyReduction_408happyReduce_409happyReduction_409happyReduce_410happyReduction_410happyReduce_411happyReduction_411happyReduce_412happyReduction_412happyReduce_413happyReduction_413happyReduce_414happyReduction_414happyReduce_415happyReduction_415happyReduce_416happyReduction_416happyReduce_417happyReduction_417happyReduce_418happyReduction_418happyReduce_419happyReduction_419happyReduce_420happyReduction_420happyReduce_421happyReduction_421happyReduce_422happyReduction_422happyReduce_423happyReduction_423happyReduce_424happyReduction_424happyReduce_425happyReduction_425happyReduce_426happyReduction_426happyReduce_427happyReduction_427happyReduce_428happyReduction_428happyReduce_429happyReduction_429happyReduce_430happyReduction_430happyReduce_431happyReduction_431happyReduce_432happyReduction_432happyReduce_433happyReduction_433happyReduce_434happyReduction_434happyReduce_435happyReduction_435happyReduce_436happyReduction_436happyReduce_437happyReduction_437happyReduce_438happyReduction_438happyReduce_439happyReduction_439happyReduce_440happyReduction_440happyReduce_441happyReduction_441happyReduce_442happyReduction_442happyReduce_443happyReduction_443happyReduce_444happyReduction_444happyReduce_445happyReduction_445happyReduce_446happyReduction_446happyReduce_447happyReduction_447happyReduce_448happyReduction_448happyReduce_449happyReduction_449 happyNewToken happyError_ happyThen happyReturn happyThen1 happyReturn1 happyError'parseFileInputparseSingleInput parseEvalhappySeq happyParse happyAccept happyDoActionindexShortOffAddr happyShifthappySpecReduce_0happySpecReduce_1happySpecReduce_2happySpecReduce_3 happyReducehappyMonadReducehappyMonad2Reduce happyDrop happyDropStk happyGoto happyFail notHappyAtAll happyTcHack happyDoSeq happyDontSeqalex_action_84alex_action_85alex_action_86alex_action_87alex_action_88alex_action_89alex_action_90alex_action_91alex_action_92 happyIn268 happyOut268 happyIn269 happyOut269 happyIn270 happyOut270 happyIn271 happyOut271 happyIn272 happyOut272happyReduce_450happyReduction_450happyReduce_451happyReduction_451happyReduce_452happyReduction_452happyReduce_453happyReduction_453happyReduce_454happyReduction_454happyReduce_455happyReduction_455