'-----------------------------------------------------------' Comment.Single
'\n'          Text

"-- Print the lyrics to the song '99 bottles of beer'" Comment.Single
'\n\n'        Text

'output'      Name.Variable.Magic
' '           Text
'='           Operator
'\n  '        Text
'range'       Name.Variable
'('           Punctuation
'99'          Literal.Number
','           Punctuation
' '           Text
'1'           Literal.Number
')'           Punctuation
'\n  '        Text
'|>'          Operator
' '           Text
'map'         Name.Variable
'('           Punctuation
'showBeer'    Name.Variable
')'           Punctuation
'\n  '        Text
'|>'          Operator
' '           Text
'printLines'  Name.Variable
'\n\n'        Text

'beerFmt'     Name.Variable
' '           Text
'='           Operator
' '           Text
'"""'         Literal.String
'{} of beer on the wall!\n{} of beer!\nYou take one down, pass it around\n{}' Literal.String
'"""'         Literal.String
'\n\n'        Text

'showBeer'    Name.Variable
'('           Punctuation
'n'           Name.Variable
')'           Punctuation
' '           Text
'='           Operator
'\n  '        Text
'format'      Name.Variable
'('           Punctuation
'\n    '      Text
'beerFmt'     Name.Variable
','           Punctuation
'\n    '      Text
'['           Punctuation
'showBottle'  Name.Variable
'('           Punctuation
'n'           Name.Variable
')'           Punctuation
','           Punctuation
' '           Text
'showBottle'  Name.Variable
'('           Punctuation
'n'           Name.Variable
')'           Punctuation
','           Punctuation
' '           Text
'nextBeer'    Name.Variable
'('           Punctuation
'n'           Name.Variable
' '           Text
'-'           Operator
' '           Text
'1'           Literal.Number
')'           Punctuation
']'           Punctuation
'\n  '        Text
')'           Punctuation
'\n\n'        Text

'nextBeer'    Name.Variable
'('           Punctuation
'n'           Name.Variable
')'           Punctuation
' '           Text
'='           Operator
'\n  '        Text
'if'          Keyword
' '           Text
'n'           Name.Variable
' '           Text
'=='          Operator
' '           Text
'0'           Literal.Number
' '           Text
'then'        Keyword
' '           Text
'"'           Literal.String
'No more bottles of beer on the wall!' Literal.String
'"'           Literal.String
'\n  '        Text
'else'        Keyword
' '           Text
'format'      Name.Variable
'('           Punctuation
'"'           Literal.String
'{} of beer on the wall!' Literal.String
'\\n'         Literal.String.Escape
'"'           Literal.String
','           Punctuation
' '           Text
'['           Punctuation
'showBottle'  Name.Variable
'('           Punctuation
'n'           Name.Variable
')'           Punctuation
']'           Punctuation
')'           Punctuation
'\n\n'        Text

'-----------------------------------------------------------' Comment.Single
'\n'          Text

"-- Get appropriate singular / plural form of 'n bottle(s)'" Comment.Single
'\n\n'        Text

'showBottle'  Name.Variable
'('           Punctuation
'n'           Name.Variable
')'           Punctuation
' '           Text
'='           Operator
'\n  '        Text
'format'      Name.Variable
'('           Punctuation
'"'           Literal.String
'{} {}'       Literal.String
'"'           Literal.String
','           Punctuation
' '           Text
'['           Punctuation
'n'           Name.Variable
','           Punctuation
' '           Text
'bottleStr'   Name.Variable
']'           Punctuation
')'           Punctuation
'\n  '        Text
'where'       Keyword
' '           Text
'bottleStr'   Name.Variable
' '           Text
'='           Operator
' '           Text
'if'          Keyword
' '           Text
'n'           Name.Variable
' '           Text
'=='          Operator
' '           Text
'1'           Literal.Number
' '           Text
'then'        Keyword
' '           Text
'"'           Literal.String
'bottle'      Literal.String
'"'           Literal.String
' '           Text
'else'        Keyword
' '           Text
'"'           Literal.String
'bottles'     Literal.String
'"'           Literal.String
'\n'          Text
