'{-'          Comment.Multiline
'# LANGUAGE DeriveDataTypeable, FlexibleContexts, GeneralizedNewtypeDeriving\n  , MultiParamTypeClasses, OverloadedStrings, ScopedTypeVariables, TemplateHaskell\n  , TypeFamilies, FlexibleInstances #' Comment.Multiline
'-}'          Comment.Multiline
'\n'          Text.Whitespace

'module'      Keyword.Reserved
' '           Text.Whitespace
'Main'        Name.Namespace
' '           Text.Whitespace
'where'       Keyword.Reserved
'\n'          Text.Whitespace

'import'      Keyword.Reserved
' '           Text.Whitespace
'Control.Applicative' Name.Namespace
'  '          Text.Whitespace
'('           Punctuation
'Applicative' Keyword.Type
','           Punctuation
' '           Text.Whitespace
'Alternative' Keyword.Type
','           Punctuation
' '           Text.Whitespace
'('           Punctuation
'<$>'         Operator
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'import'      Keyword.Reserved
' '           Text.Whitespace
'Control.Exception.Lifted' Name.Namespace
'    '        Text.Whitespace
'('           Punctuation
'bracket'     Name.Function
')'           Punctuation
'\n'          Text.Whitespace

'import'      Keyword.Reserved
' '           Text.Whitespace
'Control.Monad.Trans.Control' Name.Namespace
' '           Text.Whitespace
'('           Punctuation
'MonadBaseControl' Keyword.Type
')'           Punctuation
'\n'          Text.Whitespace

'import'      Keyword.Reserved
' '           Text.Whitespace
'Control.Monad' Name.Namespace
'        '    Text.Whitespace
'('           Punctuation
'MonadPlus'   Keyword.Type
','           Punctuation
' '           Text.Whitespace
'mplus'       Name.Function
')'           Punctuation
'\n'          Text.Whitespace

'import'      Keyword.Reserved
' '           Text.Whitespace
'Control.Monad.Reader' Name.Namespace
' '           Text.Whitespace
'('           Punctuation
'MonadReader' Keyword.Type
','           Punctuation
' '           Text.Whitespace
'ReaderT'     Keyword.Type
'('           Punctuation
'..'          Operator
')'           Punctuation
','           Punctuation
' '           Text.Whitespace
'ask'         Name.Function
')'           Punctuation
'\n'          Text.Whitespace

'import'      Keyword.Reserved
' '           Text.Whitespace
'Control.Monad.Trans' Name.Namespace
'  '          Text.Whitespace
'('           Punctuation
'MonadIO'     Keyword.Type
'('           Punctuation
'..'          Operator
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'import'      Keyword.Reserved
' '           Text.Whitespace
'Data.Acid'   Name.Namespace
'            ' Text.Whitespace
'('           Punctuation
' '           Text.Whitespace
'AcidState'   Keyword.Type
'('           Punctuation
'..'          Operator
')'           Punctuation
','           Punctuation
' '           Text.Whitespace
'EventState'  Keyword.Type
'('           Punctuation
'..'          Operator
')'           Punctuation
','           Punctuation
' '           Text.Whitespace
'EventResult' Keyword.Type
'('           Punctuation
'..'          Operator
')'           Punctuation
'\n                            ' Text.Whitespace
','           Punctuation
' '           Text.Whitespace
'Query'       Keyword.Type
'('           Punctuation
'..'          Operator
')'           Punctuation
','           Punctuation
' '           Text.Whitespace
'QueryEvent'  Keyword.Type
'('           Punctuation
'..'          Operator
')'           Punctuation
','           Punctuation
' '           Text.Whitespace
'Update'      Keyword.Type
'('           Punctuation
'..'          Operator
')'           Punctuation
','           Punctuation
' '           Text.Whitespace
'UpdateEvent' Keyword.Type
'('           Punctuation
'..'          Operator
')'           Punctuation
'\n                            ' Text.Whitespace
','           Punctuation
' '           Text.Whitespace
'IsAcidic'    Keyword.Type
'('           Punctuation
'..'          Operator
')'           Punctuation
','           Punctuation
' '           Text.Whitespace
'makeAcidic'  Name.Function
','           Punctuation
' '           Text.Whitespace
'openLocalState' Name.Function
'\n                            ' Text.Whitespace
')'           Punctuation
'\n'          Text.Whitespace

'import'      Keyword.Reserved
' '           Text.Whitespace
'Data.Acid.Local' Name.Namespace
'      '      Text.Whitespace
'('           Punctuation
' '           Text.Whitespace
'createCheckpointAndClose' Name.Function
'\n                            ' Text.Whitespace
','           Punctuation
' '           Text.Whitespace
'openLocalStateFrom' Name.Function
'\n                            ' Text.Whitespace
')'           Punctuation
'\n'          Text.Whitespace

'import'      Keyword.Reserved
' '           Text.Whitespace
'Data.Acid.Advanced' Name.Namespace
'   '         Text.Whitespace
'('           Punctuation
"query'"      Name.Function
','           Punctuation
' '           Text.Whitespace
"update'"     Name.Function
')'           Punctuation
'\n'          Text.Whitespace

'import'      Keyword.Reserved
' '           Text.Whitespace
'Data.Maybe'  Name.Namespace
'           ' Text.Whitespace
'('           Punctuation
'fromMaybe'   Name.Function
')'           Punctuation
'\n'          Text.Whitespace

'import'      Keyword.Reserved
' '           Text.Whitespace
'Data.SafeCopy' Name.Namespace
'        '    Text.Whitespace
'('           Punctuation
'SafeCopy'    Keyword.Type
','           Punctuation
' '           Text.Whitespace
'base'        Name.Function
','           Punctuation
' '           Text.Whitespace
'deriveSafeCopy' Name.Function
')'           Punctuation
'\n'          Text.Whitespace

'import'      Keyword.Reserved
' '           Text.Whitespace
'Data.Data'   Name.Namespace
'            ' Text.Whitespace
'('           Punctuation
'Data'        Keyword.Type
','           Punctuation
' '           Text.Whitespace
'Typeable'    Keyword.Type
')'           Punctuation
'\n'          Text.Whitespace

'import'      Keyword.Reserved
' '           Text.Whitespace
'Data.Lens'   Name.Namespace
'            ' Text.Whitespace
'('           Punctuation
'('           Punctuation
'%='          Operator
')'           Punctuation
','           Punctuation
' '           Text.Whitespace
'('           Punctuation
'!='          Operator
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'import'      Keyword.Reserved
' '           Text.Whitespace
'Data.Lens.Template' Name.Namespace
'   '         Text.Whitespace
'('           Punctuation
'makeLens'    Name.Function
')'           Punctuation
'\n'          Text.Whitespace

'import'      Keyword.Reserved
' '           Text.Whitespace
'Data.Text.Lazy' Name.Namespace
'       '     Text.Whitespace
'('           Punctuation
'Text'        Keyword.Type
')'           Punctuation
'\n'          Text.Whitespace

'import'      Keyword.Reserved
' '           Text.Whitespace
'Happstack.Server' Name.Namespace
'     '       Text.Whitespace
'('           Punctuation
' '           Text.Whitespace
'Happstack'   Keyword.Type
','           Punctuation
' '           Text.Whitespace
'HasRqData'   Keyword.Type
','           Punctuation
' '           Text.Whitespace
'Method'      Keyword.Type
'('           Punctuation
'GET'         Keyword.Type
','           Punctuation
' '           Text.Whitespace
'POST'        Keyword.Type
')'           Punctuation
','           Punctuation
' '           Text.Whitespace
'Request'     Keyword.Type
'('           Punctuation
'rqMethod'    Name.Function
')'           Punctuation
'\n                            ' Text.Whitespace
','           Punctuation
' '           Text.Whitespace
'Response'    Keyword.Type
'\n                            ' Text.Whitespace
','           Punctuation
' '           Text.Whitespace
'ServerPartT' Keyword.Type
'('           Punctuation
'..'          Operator
')'           Punctuation
','           Punctuation
' '           Text.Whitespace
'WebMonad'    Keyword.Type
','           Punctuation
' '           Text.Whitespace
'FilterMonad' Keyword.Type
','           Punctuation
' '           Text.Whitespace
'ServerMonad' Keyword.Type
'\n                            ' Text.Whitespace
','           Punctuation
' '           Text.Whitespace
'askRq'       Name.Function
','           Punctuation
' '           Text.Whitespace
'decodeBody'  Name.Function
','           Punctuation
' '           Text.Whitespace
'dir'         Name.Function
','           Punctuation
' '           Text.Whitespace
'defaultBodyPolicy' Name.Function
','           Punctuation
' '           Text.Whitespace
'lookText'    Name.Function
'\n                            ' Text.Whitespace
','           Punctuation
' '           Text.Whitespace
'mapServerPartT' Name.Function
','           Punctuation
' '           Text.Whitespace
'nullConf'    Name.Function
','           Punctuation
' '           Text.Whitespace
'nullDir'     Name.Function
','           Punctuation
' '           Text.Whitespace
'ok'          Name.Function
','           Punctuation
' '           Text.Whitespace
'simpleHTTP'  Name.Function
'\n                            ' Text.Whitespace
','           Punctuation
' '           Text.Whitespace
'toResponse'  Name.Function
'\n                            ' Text.Whitespace
')'           Punctuation
'\n'          Text.Whitespace

'import'      Keyword.Reserved
' '           Text.Whitespace
'Prelude'     Name.Namespace
' '           Text.Whitespace
'hiding'      Keyword
'       '     Text.Whitespace
'('           Punctuation
'head'        Name.Function
','           Punctuation
' '           Text.Whitespace
'id'          Name.Function
')'           Punctuation
'\n'          Text.Whitespace

'import'      Keyword.Reserved
' '           Text.Whitespace
'System.FilePath' Name.Namespace
'      '      Text.Whitespace
'('           Punctuation
'('           Punctuation
'</>'         Operator
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'import'      Keyword.Reserved
' '           Text.Whitespace
'Text.Blaze'  Name.Namespace
'           ' Text.Whitespace
'('           Punctuation
'('           Punctuation
'!'           Operator
')'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'import'      Keyword.Reserved
' '           Text.Whitespace
'Text.Blaze.Html4.Strict' Name.Namespace
' '           Text.Whitespace
'('           Punctuation
'body'        Name.Function
','           Punctuation
' '           Text.Whitespace
'head'        Name.Function
','           Punctuation
' '           Text.Whitespace
'html'        Name.Function
','           Punctuation
' '           Text.Whitespace
'input'       Name.Function
','           Punctuation
' '           Text.Whitespace
'form'        Name.Function
','           Punctuation
' '           Text.Whitespace
'label'       Name.Function
','           Punctuation
' '           Text.Whitespace
'p'           Name.Function
','           Punctuation
' '           Text.Whitespace
'title'       Name.Function
','           Punctuation
' '           Text.Whitespace
'toHtml'      Name.Function
')'           Punctuation
'\n'          Text.Whitespace

'import'      Keyword.Reserved
' '           Text.Whitespace
'Text.Blaze.Html4.Strict.Attributes' Name.Namespace
' '           Text.Whitespace
'('           Punctuation
'action'      Name.Function
','           Punctuation
' '           Text.Whitespace
'enctype'     Name.Function
','           Punctuation
' '           Text.Whitespace
'for'         Name.Function
','           Punctuation
' '           Text.Whitespace
'id'          Name.Function
','           Punctuation
' '           Text.Whitespace
'method'      Name.Function
','           Punctuation
' '           Text.Whitespace
'name'        Name.Function
','           Punctuation
' '           Text.Whitespace
'type_'       Name.Function
','           Punctuation
' '           Text.Whitespace
'value'       Name.Function
')'           Punctuation
'\n'          Text.Whitespace

'class'       Keyword.Reserved
' '           Text.Whitespace
'HasAcidState' Keyword.Type
' '           Text.Whitespace
'm'           Name
' '           Text.Whitespace
'st'          Name
' '           Text.Whitespace
'where'       Keyword.Reserved
'\n   '       Text.Whitespace
'getAcidState' Name
' '           Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'm'           Name
' '           Text.Whitespace
'('           Punctuation
'AcidState'   Keyword.Type
' '           Text.Whitespace
'st'          Name
')'           Punctuation
'\n'          Text.Whitespace

'query'       Name.Function
' '           Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'forall'      Name
' '           Text.Whitespace
'event'       Name
' '           Text.Whitespace
'm'           Name
'.'           Operator
' \n         ' Text.Whitespace
'('           Punctuation
' '           Text.Whitespace
'Functor'     Keyword.Type
' '           Text.Whitespace
'm'           Name
'\n         ' Text.Whitespace
','           Punctuation
' '           Text.Whitespace
'MonadIO'     Keyword.Type
' '           Text.Whitespace
'm'           Name
'\n         ' Text.Whitespace
','           Punctuation
' '           Text.Whitespace
'QueryEvent'  Keyword.Type
' '           Text.Whitespace
'event'       Name
'\n         ' Text.Whitespace
','           Punctuation
' '           Text.Whitespace
'HasAcidState' Keyword.Type
' '           Text.Whitespace
'm'           Name
' '           Text.Whitespace
'('           Punctuation
'EventState'  Keyword.Type
' '           Text.Whitespace
'event'       Name
')'           Punctuation
'\n         ' Text.Whitespace
')'           Punctuation
' '           Text.Whitespace
'=>'          Operator.Word
' \n         ' Text.Whitespace
'event'       Name
'\n      '    Text.Whitespace
'->'          Operator.Word
' '           Text.Whitespace
'm'           Name
' '           Text.Whitespace
'('           Punctuation
'EventResult' Keyword.Type
' '           Text.Whitespace
'event'       Name
')'           Punctuation
'\n'          Text.Whitespace

'query'       Name.Function
' '           Text.Whitespace
'event'       Name
' '           Text.Whitespace
'='           Operator.Word
'\n    '      Text.Whitespace
'do'          Keyword.Reserved
' '           Text.Whitespace
'as'          Name
' '           Text.Whitespace
'<-'          Operator.Word
' '           Text.Whitespace
'getAcidState' Name
'\n       '   Text.Whitespace
"query'"      Name
' '           Text.Whitespace
'('           Punctuation
'as'          Name
' '           Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'AcidState'   Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'EventState'  Keyword.Type
' '           Text.Whitespace
'event'       Name
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'event'       Name
'\n'          Text.Whitespace

'update'      Name.Function
' '           Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'forall'      Name
' '           Text.Whitespace
'event'       Name
' '           Text.Whitespace
'm'           Name
'.'           Operator
' \n          ' Text.Whitespace
'('           Punctuation
' '           Text.Whitespace
'Functor'     Keyword.Type
' '           Text.Whitespace
'm'           Name
'\n          ' Text.Whitespace
','           Punctuation
' '           Text.Whitespace
'MonadIO'     Keyword.Type
' '           Text.Whitespace
'm'           Name
'\n          ' Text.Whitespace
','           Punctuation
' '           Text.Whitespace
'UpdateEvent' Keyword.Type
' '           Text.Whitespace
'event'       Name
'\n          ' Text.Whitespace
','           Punctuation
' '           Text.Whitespace
'HasAcidState' Keyword.Type
' '           Text.Whitespace
'm'           Name
' '           Text.Whitespace
'('           Punctuation
'EventState'  Keyword.Type
' '           Text.Whitespace
'event'       Name
')'           Punctuation
'\n          ' Text.Whitespace
')'           Punctuation
' '           Text.Whitespace
'=>'          Operator.Word
' \n          ' Text.Whitespace
'event'       Name
' \n       '  Text.Whitespace
'->'          Operator.Word
' '           Text.Whitespace
'm'           Name
' '           Text.Whitespace
'('           Punctuation
'EventResult' Keyword.Type
' '           Text.Whitespace
'event'       Name
')'           Punctuation
'\n'          Text.Whitespace

'update'      Name.Function
' '           Text.Whitespace
'event'       Name
' '           Text.Whitespace
'='           Operator.Word
'\n    '      Text.Whitespace
'do'          Keyword.Reserved
' '           Text.Whitespace
'as'          Name
' '           Text.Whitespace
'<-'          Operator.Word
' '           Text.Whitespace
'getAcidState' Name
'\n       '   Text.Whitespace
"update'"     Name
' '           Text.Whitespace
'('           Punctuation
'as'          Name
' '           Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'AcidState'   Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'EventState'  Keyword.Type
' '           Text.Whitespace
'event'       Name
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'event'       Name
'\n'          Text.Whitespace

'-- | bracket the opening and close of the `AcidState` handle. ' Comment.Single
'\n\n'        Text.Whitespace

'-- automatically creates a checkpoint on close' Comment.Single
'\n'          Text.Whitespace

'withLocalState' Name.Function
' '           Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'('           Punctuation
'MonadBaseControl' Keyword.Type
' '           Text.Whitespace
'IO'          Keyword.Type
' '           Text.Whitespace
'm'           Name
','           Punctuation
' '           Text.Whitespace
'MonadIO'     Keyword.Type
' '           Text.Whitespace
'm'           Name
','           Punctuation
' '           Text.Whitespace
'IsAcidic'    Keyword.Type
' '           Text.Whitespace
'st'          Name
','           Punctuation
' '           Text.Whitespace
'Typeable'    Keyword.Type
' '           Text.Whitespace
'st'          Name
')'           Punctuation
' '           Text.Whitespace
'=>'          Operator.Word
' \n                  ' Text.Whitespace
'Maybe'       Keyword.Type
' '           Text.Whitespace
'FilePath'    Keyword.Type
'           ' Text.Whitespace
'-- ^ path to state directory' Comment.Single
'\n                 ' Text.Whitespace
'->'          Operator.Word
' '           Text.Whitespace
'st'          Name
'                     ' Text.Whitespace
'-- ^ initial state value' Comment.Single
'\n                 ' Text.Whitespace
'->'          Operator.Word
' '           Text.Whitespace
'('           Punctuation
'AcidState'   Keyword.Type
' '           Text.Whitespace
'st'          Name
' '           Text.Whitespace
'->'          Operator.Word
' '           Text.Whitespace
'm'           Name
' '           Text.Whitespace
'a'           Name
')'           Punctuation
' '           Text.Whitespace
'-- ^ function which uses the `AcidState` handle' Comment.Single
'\n                 ' Text.Whitespace
'->'          Operator.Word
' '           Text.Whitespace
'm'           Name
' '           Text.Whitespace
'a'           Name
'\n'          Text.Whitespace

'withLocalState' Name.Function
' '           Text.Whitespace
'mPath'       Name
' '           Text.Whitespace
'initialState' Name
' '           Text.Whitespace
'='           Operator.Word
'\n    '      Text.Whitespace
'bracket'     Name
' '           Text.Whitespace
'('           Punctuation
'liftIO'      Name
' '           Text.Whitespace
'$'           Operator
' '           Text.Whitespace
'('           Punctuation
'maybe'       Name
' '           Text.Whitespace
'openLocalState' Name
' '           Text.Whitespace
'openLocalStateFrom' Name
' '           Text.Whitespace
'mPath'       Name
')'           Punctuation
' '           Text.Whitespace
'initialState' Name
')'           Punctuation
'\n            ' Text.Whitespace
'('           Punctuation
'liftIO'      Name
' '           Text.Whitespace
'.'           Operator
' '           Text.Whitespace
'createCheckpointAndClose' Name
')'           Punctuation
'\n'          Text.Whitespace

'-- State that stores a hit count' Comment.Single
'\n\n'        Text.Whitespace

'data'        Keyword.Reserved
' '           Text.Whitespace
'CountState'  Keyword.Type
' '           Text.Whitespace
'='           Operator.Word
' '           Text.Whitespace
'CountState'  Keyword.Type
' '           Text.Whitespace
'{'           Punctuation
' '           Text.Whitespace
'_count'      Name
' '           Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'Integer'     Keyword.Type
' '           Text.Whitespace
'}'           Punctuation
'\n                ' Text.Whitespace
'deriving'    Keyword.Reserved
' '           Text.Whitespace
'('           Punctuation
'Eq'          Keyword.Type
','           Punctuation
' '           Text.Whitespace
'Ord'         Keyword.Type
','           Punctuation
' '           Text.Whitespace
'Data'        Keyword.Type
','           Punctuation
' '           Text.Whitespace
'Typeable'    Keyword.Type
','           Punctuation
' '           Text.Whitespace
'Show'        Keyword.Type
')'           Punctuation
'\n\n'        Text.Whitespace

'$'           Operator
'('           Punctuation
'deriveSafeCopy' Name
' '           Text.Whitespace
'0'           Literal.Number.Integer
' '           Text.Whitespace
"'base"       Name
' '           Text.Whitespace
"''CountState" Keyword.Type
')'           Punctuation
'\n'          Text.Whitespace

'$'           Operator
'('           Punctuation
'makeLens'    Name
' '           Text.Whitespace
"''CountState" Keyword.Type
')'           Punctuation
'\n\n'        Text.Whitespace

'initialCountState' Name.Function
' '           Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'CountState'  Keyword.Type
'\n'          Text.Whitespace

'initialCountState' Name.Function
' '           Text.Whitespace
'='           Operator.Word
' '           Text.Whitespace
'CountState'  Keyword.Type
' '           Text.Whitespace
'{'           Punctuation
' '           Text.Whitespace
'_count'      Name
' '           Text.Whitespace
'='           Operator.Word
' '           Text.Whitespace
'0'           Literal.Number.Integer
' '           Text.Whitespace
'}'           Punctuation
'\n\n'        Text.Whitespace

'incCount'    Name.Function
' '           Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'Update'      Keyword.Type
' '           Text.Whitespace
'CountState'  Keyword.Type
' '           Text.Whitespace
'Integer'     Keyword.Type
'\n'          Text.Whitespace

'incCount'    Name.Function
' '           Text.Whitespace
'='           Operator.Word
' '           Text.Whitespace
'count'       Name
' '           Text.Whitespace
'%='          Operator
' '           Text.Whitespace
'succ'        Name
'\n\n'        Text.Whitespace

'$'           Operator
'('           Punctuation
'makeAcidic'  Name
' '           Text.Whitespace
"''CountState" Keyword.Type
' '           Text.Whitespace
'['           Punctuation
"'incCount"   Name
']'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'-- State that stores a greeting' Comment.Single
'\n'          Text.Whitespace

'data'        Keyword.Reserved
' '           Text.Whitespace
'GreetingState' Keyword.Type
' '           Text.Whitespace
'='           Operator.Word
' '           Text.Whitespace
'GreetingState' Keyword.Type
' '           Text.Whitespace
'{'           Punctuation
'  '          Text.Whitespace
'_greeting'   Name
' '           Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'Text'        Keyword.Type
' '           Text.Whitespace
'}'           Punctuation
'\n                ' Text.Whitespace
'deriving'    Keyword.Reserved
' '           Text.Whitespace
'('           Punctuation
'Eq'          Keyword.Type
','           Punctuation
' '           Text.Whitespace
'Ord'         Keyword.Type
','           Punctuation
' '           Text.Whitespace
'Data'        Keyword.Type
','           Punctuation
' '           Text.Whitespace
'Typeable'    Keyword.Type
','           Punctuation
' '           Text.Whitespace
'Show'        Keyword.Type
')'           Punctuation
'\n\n'        Text.Whitespace

'$'           Operator
'('           Punctuation
'deriveSafeCopy' Name
' '           Text.Whitespace
'0'           Literal.Number.Integer
' '           Text.Whitespace
"'base"       Name
' '           Text.Whitespace
"''GreetingState" Keyword.Type
')'           Punctuation
'\n'          Text.Whitespace

'$'           Operator
'('           Punctuation
'makeLens'    Name
' '           Text.Whitespace
"''GreetingState" Keyword.Type
')'           Punctuation
'\n\n'        Text.Whitespace

'initialGreetingState' Name.Function
' '           Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'GreetingState' Keyword.Type
'\n'          Text.Whitespace

'initialGreetingState' Name.Function
' '           Text.Whitespace
'='           Operator.Word
' '           Text.Whitespace
'GreetingState' Keyword.Type
' '           Text.Whitespace
'{'           Punctuation
' '           Text.Whitespace
'_greeting'   Name
' '           Text.Whitespace
'='           Operator.Word
' '           Text.Whitespace
'"'           Literal.String
'Hello'       Literal.String
'"'           Literal.String
' '           Text.Whitespace
'}'           Punctuation
'\n\n'        Text.Whitespace

'getGreeting' Name.Function
' '           Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'Query'       Keyword.Type
' '           Text.Whitespace
'GreetingState' Keyword.Type
' '           Text.Whitespace
'Text'        Keyword.Type
'\n'          Text.Whitespace

'getGreeting' Name.Function
' '           Text.Whitespace
'='           Operator.Word
' '           Text.Whitespace
'_greeting'   Name
' '           Text.Whitespace
'<$>'         Operator
' '           Text.Whitespace
'ask'         Name
'\n\n'        Text.Whitespace

'setGreeting' Name.Function
' '           Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'Text'        Keyword.Type
' '           Text.Whitespace
'->'          Operator.Word
' '           Text.Whitespace
'Update'      Keyword.Type
' '           Text.Whitespace
'GreetingState' Keyword.Type
' '           Text.Whitespace
'Text'        Keyword.Type
'\n'          Text.Whitespace

'setGreeting' Name.Function
' '           Text.Whitespace
'txt'         Name
' '           Text.Whitespace
'='           Operator.Word
' '           Text.Whitespace
'greeting'    Name
' '           Text.Whitespace
'!='          Operator
' '           Text.Whitespace
'txt'         Name
'\n\n'        Text.Whitespace

'$'           Operator
'('           Punctuation
'makeAcidic'  Name
' '           Text.Whitespace
"''GreetingState" Keyword.Type
' '           Text.Whitespace
'['           Punctuation
"'getGreeting" Name
','           Punctuation
' '           Text.Whitespace
"'setGreeting" Name
']'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'data'        Keyword.Reserved
' '           Text.Whitespace
'Acid'        Keyword.Type
' '           Text.Whitespace
'='           Operator.Word
' '           Text.Whitespace
'Acid'        Keyword.Type
' '           Text.Whitespace
'{'           Punctuation
' '           Text.Whitespace
'acidCountState' Name
'    '        Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'AcidState'   Keyword.Type
' '           Text.Whitespace
'CountState'  Keyword.Type
'\n                 ' Text.Whitespace
','           Punctuation
' '           Text.Whitespace
'acidGreetingState' Name
' '           Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'AcidState'   Keyword.Type
' '           Text.Whitespace
'GreetingState' Keyword.Type
'\n                 ' Text.Whitespace
'}'           Punctuation
'\n\n'        Text.Whitespace

'withAcid'    Name.Function
' '           Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'Maybe'       Keyword.Type
' '           Text.Whitespace
'FilePath'    Keyword.Type
' '           Text.Whitespace
'->'          Operator.Word
' '           Text.Whitespace
'('           Punctuation
'Acid'        Keyword.Type
' '           Text.Whitespace
'->'          Operator.Word
' '           Text.Whitespace
'IO'          Keyword.Type
' '           Text.Whitespace
'a'           Name
')'           Punctuation
' '           Text.Whitespace
'->'          Operator.Word
' '           Text.Whitespace
'IO'          Keyword.Type
' '           Text.Whitespace
'a'           Name
'\n'          Text.Whitespace

'withAcid'    Name.Function
' '           Text.Whitespace
'mBasePath'   Name
' '           Text.Whitespace
'action'      Name
' '           Text.Whitespace
'='           Operator.Word
'\n    '      Text.Whitespace
'let'         Keyword.Reserved
' '           Text.Whitespace
'basePath'    Name
' '           Text.Whitespace
'='           Operator.Word
' '           Text.Whitespace
'fromMaybe'   Name
' '           Text.Whitespace
'"'           Literal.String
'_state'      Literal.String
'"'           Literal.String
' '           Text.Whitespace
'mBasePath'   Name
'\n    '      Text.Whitespace
'in'          Keyword.Reserved
' '           Text.Whitespace
'withLocalState' Name
' '           Text.Whitespace
'('           Punctuation
'Just'        Keyword.Type
' '           Text.Whitespace
'$'           Operator
' '           Text.Whitespace
'basePath'    Name
' '           Text.Whitespace
'</>'         Operator
' '           Text.Whitespace
'"'           Literal.String
'count'       Literal.String
'"'           Literal.String
')'           Punctuation
'    '        Text.Whitespace
'initialCountState' Name
'    '        Text.Whitespace
'$'           Operator
' '           Text.Whitespace
'\\'          Name.Function
'c'           Name
' '           Text.Whitespace
'->'          Operator.Word
'\n       '   Text.Whitespace
'withLocalState' Name
' '           Text.Whitespace
'('           Punctuation
'Just'        Keyword.Type
' '           Text.Whitespace
'$'           Operator
' '           Text.Whitespace
'basePath'    Name
' '           Text.Whitespace
'</>'         Operator
' '           Text.Whitespace
'"'           Literal.String
'greeting'    Literal.String
'"'           Literal.String
')'           Punctuation
' '           Text.Whitespace
'initialGreetingState' Name
' '           Text.Whitespace
'$'           Operator
' '           Text.Whitespace
'\\'          Name.Function
'g'           Name
' '           Text.Whitespace
'->'          Operator.Word
'\n           ' Text.Whitespace
'action'      Name
' '           Text.Whitespace
'('           Punctuation
'Acid'        Keyword.Type
' '           Text.Whitespace
'c'           Name
' '           Text.Whitespace
'g'           Name
')'           Punctuation
'\n'          Text.Whitespace

'newtype'     Keyword.Reserved
' '           Text.Whitespace
'App'         Keyword.Type
' '           Text.Whitespace
'a'           Name
' '           Text.Whitespace
'='           Operator.Word
' '           Text.Whitespace
'App'         Keyword.Type
' '           Text.Whitespace
'{'           Punctuation
' '           Text.Whitespace
'unApp'       Name
' '           Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'ServerPartT' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'ReaderT'     Keyword.Type
' '           Text.Whitespace
'Acid'        Keyword.Type
' '           Text.Whitespace
'IO'          Keyword.Type
')'           Punctuation
' '           Text.Whitespace
'a'           Name
' '           Text.Whitespace
'}'           Punctuation
'\n    '      Text.Whitespace
'deriving'    Keyword.Reserved
' '           Text.Whitespace
'('           Punctuation
' '           Text.Whitespace
'Functor'     Keyword.Type
','           Punctuation
' '           Text.Whitespace
'Alternative' Keyword.Type
','           Punctuation
' '           Text.Whitespace
'Applicative' Keyword.Type
','           Punctuation
' '           Text.Whitespace
'Monad'       Keyword.Type
','           Punctuation
' '           Text.Whitespace
'MonadPlus'   Keyword.Type
','           Punctuation
' '           Text.Whitespace
'MonadIO'     Keyword.Type
'\n               ' Text.Whitespace
','           Punctuation
' '           Text.Whitespace
'HasRqData'   Keyword.Type
','           Punctuation
' '           Text.Whitespace
'ServerMonad' Keyword.Type
' '           Text.Whitespace
','           Punctuation
'WebMonad'    Keyword.Type
' '           Text.Whitespace
'Response'    Keyword.Type
','           Punctuation
' '           Text.Whitespace
'FilterMonad' Keyword.Type
' '           Text.Whitespace
'Response'    Keyword.Type
'\n               ' Text.Whitespace
','           Punctuation
' '           Text.Whitespace
'Happstack'   Keyword.Type
','           Punctuation
' '           Text.Whitespace
'MonadReader' Keyword.Type
' '           Text.Whitespace
'Acid'        Keyword.Type
')'           Punctuation
'\n\n'        Text.Whitespace

'runApp'      Name.Function
' '           Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'Acid'        Keyword.Type
' '           Text.Whitespace
'->'          Operator.Word
' '           Text.Whitespace
'App'         Keyword.Type
' '           Text.Whitespace
'a'           Name
' '           Text.Whitespace
'->'          Operator.Word
' '           Text.Whitespace
'ServerPartT' Keyword.Type
' '           Text.Whitespace
'IO'          Keyword.Type
' '           Text.Whitespace
'a'           Name
'\n'          Text.Whitespace

'runApp'      Name.Function
' '           Text.Whitespace
'acid'        Name
' '           Text.Whitespace
'('           Punctuation
'App'         Keyword.Type
' '           Text.Whitespace
'sp'          Name
')'           Punctuation
' '           Text.Whitespace
'='           Operator.Word
' '           Text.Whitespace
'mapServerPartT' Name
' '           Text.Whitespace
'('           Punctuation
'flip'        Name
' '           Text.Whitespace
'runReaderT'  Name
' '           Text.Whitespace
'acid'        Name
')'           Punctuation
' '           Text.Whitespace
'sp'          Name
'\n'          Text.Whitespace

'instance'    Keyword.Reserved
' '           Text.Whitespace
'HasAcidState' Keyword.Type
' '           Text.Whitespace
'App'         Keyword.Type
' '           Text.Whitespace
'CountState'  Keyword.Type
' '           Text.Whitespace
'where'       Keyword.Reserved
'\n    '      Text.Whitespace
'getAcidState' Name
' '           Text.Whitespace
'='           Operator.Word
' '           Text.Whitespace
'acidCountState' Name
'    '        Text.Whitespace
'<$>'         Operator
' '           Text.Whitespace
'ask'         Name
' \n\n'       Text.Whitespace

'instance'    Keyword.Reserved
' '           Text.Whitespace
'HasAcidState' Keyword.Type
' '           Text.Whitespace
'App'         Keyword.Type
' '           Text.Whitespace
'GreetingState' Keyword.Type
' '           Text.Whitespace
'where'       Keyword.Reserved
'\n    '      Text.Whitespace
'getAcidState' Name
' '           Text.Whitespace
'='           Operator.Word
' '           Text.Whitespace
'acidGreetingState' Name
' '           Text.Whitespace
'<$>'         Operator
' '           Text.Whitespace
'ask'         Name
'\n'          Text.Whitespace

'page'        Name.Function
' '           Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'App'         Keyword.Type
' '           Text.Whitespace
'Response'    Keyword.Type
'\n'          Text.Whitespace

'page'        Name.Function
' '           Text.Whitespace
'='           Operator.Word
'\n    '      Text.Whitespace
'do'          Keyword.Reserved
' '           Text.Whitespace
'nullDir'     Name
'\n       '   Text.Whitespace
'g'           Name
' '           Text.Whitespace
'<-'          Operator.Word
' '           Text.Whitespace
'greet'       Name
'\n       '   Text.Whitespace
'c'           Name
' '           Text.Whitespace
'<-'          Operator.Word
' '           Text.Whitespace
'update'      Name
' '           Text.Whitespace
'IncCount'    Keyword.Type
' '           Text.Whitespace
'-- ^ a CountState event' Comment.Single
'\n       '   Text.Whitespace
'ok'          Name
' '           Text.Whitespace
'$'           Operator
' '           Text.Whitespace
'toResponse'  Name
' '           Text.Whitespace
'$'           Operator
'\n          ' Text.Whitespace
'html'        Name
' '           Text.Whitespace
'$'           Operator
' '           Text.Whitespace
'do'          Keyword.Reserved
'\n            ' Text.Whitespace
'head'        Name
' '           Text.Whitespace
'$'           Operator
' '           Text.Whitespace
'do'          Keyword.Reserved
'\n              ' Text.Whitespace
'title'       Name
' '           Text.Whitespace
'"'           Literal.String
'acid-state demo' Literal.String
'"'           Literal.String
'\n            ' Text.Whitespace
'body'        Name
' '           Text.Whitespace
'$'           Operator
' '           Text.Whitespace
'do'          Keyword.Reserved
'\n              ' Text.Whitespace
'form'        Name
' '           Text.Whitespace
'!'           Operator
' '           Text.Whitespace
'action'      Name
' '           Text.Whitespace
'"'           Literal.String
'/'           Literal.String
'"'           Literal.String
' '           Text.Whitespace
'!'           Operator
' '           Text.Whitespace
'method'      Name
' '           Text.Whitespace
'"'           Literal.String
'POST'        Literal.String
'"'           Literal.String
' '           Text.Whitespace
'!'           Operator
' '           Text.Whitespace
'enctype'     Name
' '           Text.Whitespace
'"'           Literal.String
'multipart/form-data' Literal.String
'"'           Literal.String
' '           Text.Whitespace
'$'           Operator
' '           Text.Whitespace
'do'          Keyword.Reserved
'\n                ' Text.Whitespace
'label'       Name
' '           Text.Whitespace
'"'           Literal.String
'new message: ' Literal.String
'"'           Literal.String
' '           Text.Whitespace
'!'           Operator
' '           Text.Whitespace
'for'         Name
' '           Text.Whitespace
'"'           Literal.String
'msg'         Literal.String
'"'           Literal.String
'\n                ' Text.Whitespace
'input'       Name
' '           Text.Whitespace
'!'           Operator
' '           Text.Whitespace
'type_'       Name
' '           Text.Whitespace
'"'           Literal.String
'text'        Literal.String
'"'           Literal.String
' '           Text.Whitespace
'!'           Operator
' '           Text.Whitespace
'id'          Name
' '           Text.Whitespace
'"'           Literal.String
'msg'         Literal.String
'"'           Literal.String
' '           Text.Whitespace
'!'           Operator
' '           Text.Whitespace
'name'        Name
' '           Text.Whitespace
'"'           Literal.String
'greeting'    Literal.String
'"'           Literal.String
'\n                ' Text.Whitespace
'input'       Name
' '           Text.Whitespace
'!'           Operator
' '           Text.Whitespace
'type_'       Name
' '           Text.Whitespace
'"'           Literal.String
'submit'      Literal.String
'"'           Literal.String
' '           Text.Whitespace
'!'           Operator
' '           Text.Whitespace
'value'       Name
' '           Text.Whitespace
'"'           Literal.String
'update message' Literal.String
'"'           Literal.String
'\n              ' Text.Whitespace
'p'           Name
' '           Text.Whitespace
'$'           Operator
' '           Text.Whitespace
'toHtml'      Name
' '           Text.Whitespace
'g'           Name
'\n              ' Text.Whitespace
'p'           Name
' '           Text.Whitespace
'$'           Operator
' '           Text.Whitespace
'do'          Keyword.Reserved
' '           Text.Whitespace
'"'           Literal.String
'This page has been loaded ' Literal.String
'"'           Literal.String
' \n                     ' Text.Whitespace
'toHtml'      Name
' '           Text.Whitespace
'c'           Name
'\n                     ' Text.Whitespace
'"'           Literal.String
' time(s).'   Literal.String
'"'           Literal.String
'\n    '      Text.Whitespace
'where'       Keyword.Reserved
'\n    '      Text.Whitespace
'greet'       Name
' '           Text.Whitespace
'='           Operator.Word
'\n        '  Text.Whitespace
'do'          Keyword.Reserved
' '           Text.Whitespace
'm'           Name
' '           Text.Whitespace
'<-'          Operator.Word
' '           Text.Whitespace
'rqMethod'    Name
' '           Text.Whitespace
'<$>'         Operator
' '           Text.Whitespace
'askRq'       Name
'\n           ' Text.Whitespace
'case'        Keyword.Reserved
' '           Text.Whitespace
'm'           Name
' '           Text.Whitespace
'of'          Keyword.Reserved
'\n             ' Text.Whitespace
'POST'        Keyword.Type
' '           Text.Whitespace
'->'          Operator.Word
' \n                 ' Text.Whitespace
'do'          Keyword.Reserved
' '           Text.Whitespace
'decodeBody'  Name
' '           Text.Whitespace
'('           Punctuation
'defaultBodyPolicy' Name
' '           Text.Whitespace
'"'           Literal.String
'/tmp/'       Literal.String
'"'           Literal.String
' '           Text.Whitespace
'0'           Literal.Number.Integer
' '           Text.Whitespace
'1000'        Literal.Number.Integer
' '           Text.Whitespace
'1000'        Literal.Number.Integer
')'           Punctuation
'\n                    ' Text.Whitespace
'newGreeting' Name
' '           Text.Whitespace
'<-'          Operator.Word
' '           Text.Whitespace
'lookText'    Name
' '           Text.Whitespace
'"'           Literal.String
'greeting'    Literal.String
'"'           Literal.String
'\n                    ' Text.Whitespace
'update'      Name
' '           Text.Whitespace
'('           Punctuation
'SetGreeting' Keyword.Type
' '           Text.Whitespace
'newGreeting' Name
')'           Punctuation
'   '         Text.Whitespace
'-- ^ a GreetingState event' Comment.Single
'\n                    ' Text.Whitespace
'return'      Name
' '           Text.Whitespace
'newGreeting' Name
'\n             ' Text.Whitespace
'GET'         Keyword.Type
'  '          Text.Whitespace
'->'          Operator.Word
' \n                 ' Text.Whitespace
'do'          Keyword.Reserved
' '           Text.Whitespace
'query'       Name
' '           Text.Whitespace
'GetGreeting' Keyword.Type
'                  ' Text.Whitespace
'-- ^ a GreetingState event' Comment.Single
'\n'          Text.Whitespace

'main'        Name.Function
' '           Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'IO'          Keyword.Type
' '           Text.Whitespace
'()'          Name.Builtin
'\n'          Text.Whitespace

'main'        Name.Function
' '           Text.Whitespace
'='           Operator.Word
'\n    '      Text.Whitespace
'withAcid'    Name
' '           Text.Whitespace
'Nothing'     Keyword.Type
' '           Text.Whitespace
'$'           Operator
' '           Text.Whitespace
'\\'          Name.Function
'acid'        Name
' '           Text.Whitespace
'->'          Operator.Word
'\n        '  Text.Whitespace
'simpleHTTP'  Name
' '           Text.Whitespace
'nullConf'    Name
' '           Text.Whitespace
'$'           Operator
' '           Text.Whitespace
'runApp'      Name
' '           Text.Whitespace
'acid'        Name
' '           Text.Whitespace
'page'        Name
'\n'          Text.Whitespace

'newtype'     Keyword.Reserved
' '           Text.Whitespace
'FooState'    Keyword.Type
' '           Text.Whitespace
'='           Operator.Word
' '           Text.Whitespace
'FooState'    Keyword.Type
' '           Text.Whitespace
'{'           Punctuation
' '           Text.Whitespace
'foo'         Name
' '           Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'Text'        Keyword.Type
' '           Text.Whitespace
'}'           Punctuation
'\n    '      Text.Whitespace
'deriving'    Keyword.Reserved
' '           Text.Whitespace
'('           Punctuation
'Eq'          Keyword.Type
','           Punctuation
' '           Text.Whitespace
'Ord'         Keyword.Type
','           Punctuation
' '           Text.Whitespace
'Data'        Keyword.Type
','           Punctuation
' '           Text.Whitespace
'Typeable'    Keyword.Type
','           Punctuation
' '           Text.Whitespace
'SafeCopy'    Keyword.Type
')'           Punctuation
'\n\n'        Text.Whitespace

'initialFooState' Name.Function
' '           Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'FooState'    Keyword.Type
'\n'          Text.Whitespace

'initialFooState' Name.Function
' '           Text.Whitespace
'='           Operator.Word
' '           Text.Whitespace
'FooState'    Keyword.Type
' '           Text.Whitespace
'{'           Punctuation
' '           Text.Whitespace
'foo'         Name
' '           Text.Whitespace
'='           Operator.Word
' '           Text.Whitespace
'"'           Literal.String
'foo'         Literal.String
'"'           Literal.String
' '           Text.Whitespace
'}'           Punctuation
'\n\n'        Text.Whitespace

'askFoo'      Name.Function
' '           Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'Query'       Keyword.Type
' '           Text.Whitespace
'FooState'    Keyword.Type
' '           Text.Whitespace
'Text'        Keyword.Type
'\n'          Text.Whitespace

'askFoo'      Name.Function
' '           Text.Whitespace
'='           Operator.Word
' '           Text.Whitespace
'foo'         Name
' '           Text.Whitespace
'<$>'         Operator
' '           Text.Whitespace
'ask'         Name
'\n\n'        Text.Whitespace

'$'           Operator
'('           Punctuation
'makeAcidic'  Name
' '           Text.Whitespace
"''FooState"  Keyword.Type
' '           Text.Whitespace
'['           Punctuation
"'askFoo"     Name
']'           Punctuation
')'           Punctuation
'\n'          Text.Whitespace

'fooPlugin'   Name.Function
' '           Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'('           Punctuation
'Happstack'   Keyword.Type
' '           Text.Whitespace
'm'           Name
','           Punctuation
' '           Text.Whitespace
'HasAcidState' Keyword.Type
' '           Text.Whitespace
'm'           Name
' '           Text.Whitespace
'FooState'    Keyword.Type
')'           Punctuation
' '           Text.Whitespace
'=>'          Operator.Word
' '           Text.Whitespace
'm'           Name
' '           Text.Whitespace
'Response'    Keyword.Type
'\n'          Text.Whitespace

'fooPlugin'   Name.Function
' '           Text.Whitespace
'='           Operator.Word
'\n    '      Text.Whitespace
'dir'         Name
' '           Text.Whitespace
'"'           Literal.String
'foo'         Literal.String
'"'           Literal.String
' '           Text.Whitespace
'$'           Operator
' '           Text.Whitespace
'do'          Keyword.Reserved
'\n       '   Text.Whitespace
'txt'         Name
' '           Text.Whitespace
'<-'          Operator.Word
' '           Text.Whitespace
'query'       Name
' '           Text.Whitespace
'AskFoo'      Keyword.Type
'\n       '   Text.Whitespace
'ok'          Name
' '           Text.Whitespace
'$'           Operator
' '           Text.Whitespace
'toResponse'  Name
' '           Text.Whitespace
'txt'         Name
'\n'          Text.Whitespace

'data'        Keyword.Reserved
' '           Text.Whitespace
"Acid'"       Keyword.Type
' '           Text.Whitespace
'='           Operator.Word
' '           Text.Whitespace
"Acid'"       Keyword.Type
' '           Text.Whitespace
'{'           Punctuation
' '           Text.Whitespace
"acidCountState'" Name
'    '        Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'AcidState'   Keyword.Type
' '           Text.Whitespace
'CountState'  Keyword.Type
'\n                   ' Text.Whitespace
','           Punctuation
' '           Text.Whitespace
"acidGreetingState'" Name
' '           Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'AcidState'   Keyword.Type
' '           Text.Whitespace
'GreetingState' Keyword.Type
'\n                   ' Text.Whitespace
','           Punctuation
' '           Text.Whitespace
"acidFooState'" Name
'      '      Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'AcidState'   Keyword.Type
' '           Text.Whitespace
'FooState'    Keyword.Type
'\n                   ' Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

"withAcid'"   Name.Function
' '           Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'Maybe'       Keyword.Type
' '           Text.Whitespace
'FilePath'    Keyword.Type
' '           Text.Whitespace
'->'          Operator.Word
' '           Text.Whitespace
'('           Punctuation
"Acid'"       Keyword.Type
' '           Text.Whitespace
'->'          Operator.Word
' '           Text.Whitespace
'IO'          Keyword.Type
' '           Text.Whitespace
'a'           Name
')'           Punctuation
' '           Text.Whitespace
'->'          Operator.Word
' '           Text.Whitespace
'IO'          Keyword.Type
' '           Text.Whitespace
'a'           Name
'\n'          Text.Whitespace

"withAcid'"   Name.Function
' '           Text.Whitespace
'mBasePath'   Name
' '           Text.Whitespace
'action'      Name
' '           Text.Whitespace
'='           Operator.Word
'\n    '      Text.Whitespace
'let'         Keyword.Reserved
' '           Text.Whitespace
'basePath'    Name
' '           Text.Whitespace
'='           Operator.Word
' '           Text.Whitespace
'fromMaybe'   Name
' '           Text.Whitespace
'"'           Literal.String
'_state'      Literal.String
'"'           Literal.String
' '           Text.Whitespace
'mBasePath'   Name
'\n    '      Text.Whitespace
'in'          Keyword.Reserved
' '           Text.Whitespace
'withLocalState' Name
' '           Text.Whitespace
'('           Punctuation
'Just'        Keyword.Type
' '           Text.Whitespace
'$'           Operator
' '           Text.Whitespace
'basePath'    Name
' '           Text.Whitespace
'</>'         Operator
' '           Text.Whitespace
'"'           Literal.String
'count'       Literal.String
'"'           Literal.String
')'           Punctuation
'    '        Text.Whitespace
'initialCountState' Name
'    '        Text.Whitespace
'$'           Operator
' '           Text.Whitespace
'\\'          Name.Function
'c'           Name
' '           Text.Whitespace
'->'          Operator.Word
'\n       '   Text.Whitespace
'withLocalState' Name
' '           Text.Whitespace
'('           Punctuation
'Just'        Keyword.Type
' '           Text.Whitespace
'$'           Operator
' '           Text.Whitespace
'basePath'    Name
' '           Text.Whitespace
'</>'         Operator
' '           Text.Whitespace
'"'           Literal.String
'greeting'    Literal.String
'"'           Literal.String
')'           Punctuation
' '           Text.Whitespace
'initialGreetingState' Name
' '           Text.Whitespace
'$'           Operator
' '           Text.Whitespace
'\\'          Name.Function
'g'           Name
' '           Text.Whitespace
'->'          Operator.Word
'\n       '   Text.Whitespace
'withLocalState' Name
' '           Text.Whitespace
'('           Punctuation
'Just'        Keyword.Type
' '           Text.Whitespace
'$'           Operator
' '           Text.Whitespace
'basePath'    Name
' '           Text.Whitespace
'</>'         Operator
' '           Text.Whitespace
'"'           Literal.String
'foo'         Literal.String
'"'           Literal.String
')'           Punctuation
'      '      Text.Whitespace
'initialFooState' Name
'      '      Text.Whitespace
'$'           Operator
' '           Text.Whitespace
'\\'          Name.Function
'f'           Name
' '           Text.Whitespace
'->'          Operator.Word
'\n           ' Text.Whitespace
'action'      Name
' '           Text.Whitespace
'('           Punctuation
"Acid'"       Keyword.Type
' '           Text.Whitespace
'c'           Name
' '           Text.Whitespace
'g'           Name
' '           Text.Whitespace
'f'           Name
')'           Punctuation
'\n'          Text.Whitespace

'newtype'     Keyword.Reserved
' '           Text.Whitespace
"App'"        Keyword.Type
' '           Text.Whitespace
'a'           Name
' '           Text.Whitespace
'='           Operator.Word
' '           Text.Whitespace
"App'"        Keyword.Type
' '           Text.Whitespace
'{'           Punctuation
' '           Text.Whitespace
"unApp'"      Name
' '           Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'ServerPartT' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'ReaderT'     Keyword.Type
' '           Text.Whitespace
"Acid'"       Keyword.Type
' '           Text.Whitespace
'IO'          Keyword.Type
')'           Punctuation
' '           Text.Whitespace
'a'           Name
' '           Text.Whitespace
'}'           Punctuation
'\n    '      Text.Whitespace
'deriving'    Keyword.Reserved
' '           Text.Whitespace
'('           Punctuation
' '           Text.Whitespace
'Functor'     Keyword.Type
','           Punctuation
' '           Text.Whitespace
'Alternative' Keyword.Type
','           Punctuation
' '           Text.Whitespace
'Applicative' Keyword.Type
','           Punctuation
' '           Text.Whitespace
'Monad'       Keyword.Type
','           Punctuation
' '           Text.Whitespace
'MonadPlus'   Keyword.Type
','           Punctuation
' '           Text.Whitespace
'MonadIO'     Keyword.Type
'\n               ' Text.Whitespace
','           Punctuation
' '           Text.Whitespace
'HasRqData'   Keyword.Type
','           Punctuation
' '           Text.Whitespace
'ServerMonad' Keyword.Type
' '           Text.Whitespace
','           Punctuation
'WebMonad'    Keyword.Type
' '           Text.Whitespace
'Response'    Keyword.Type
','           Punctuation
' '           Text.Whitespace
'FilterMonad' Keyword.Type
' '           Text.Whitespace
'Response'    Keyword.Type
'\n               ' Text.Whitespace
','           Punctuation
' '           Text.Whitespace
'Happstack'   Keyword.Type
','           Punctuation
' '           Text.Whitespace
'MonadReader' Keyword.Type
' '           Text.Whitespace
"Acid'"       Keyword.Type
')'           Punctuation
'\n\n'        Text.Whitespace

'instance'    Keyword.Reserved
' '           Text.Whitespace
'HasAcidState' Keyword.Type
' '           Text.Whitespace
"App'"        Keyword.Type
' '           Text.Whitespace
'FooState'    Keyword.Type
' '           Text.Whitespace
'where'       Keyword.Reserved
'\n    '      Text.Whitespace
'getAcidState' Name
' '           Text.Whitespace
'='           Operator.Word
' '           Text.Whitespace
"acidFooState'" Name
' '           Text.Whitespace
'<$>'         Operator
' '           Text.Whitespace
'ask'         Name
'\n'          Text.Whitespace

'fooAppPlugin' Name.Function
' '           Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
"App'"        Keyword.Type
' '           Text.Whitespace
'Response'    Keyword.Type
'\n'          Text.Whitespace

'fooAppPlugin' Name.Function
' '           Text.Whitespace
'='           Operator.Word
' '           Text.Whitespace
'fooPlugin'   Name
'\n'          Text.Whitespace

'fooReaderPlugin' Name.Function
' '           Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'ReaderT'     Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'AcidState'   Keyword.Type
' '           Text.Whitespace
'FooState'    Keyword.Type
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'ServerPartT' Keyword.Type
' '           Text.Whitespace
'IO'          Keyword.Type
')'           Punctuation
' '           Text.Whitespace
'Response'    Keyword.Type
'\n'          Text.Whitespace

'fooReaderPlugin' Name.Function
' '           Text.Whitespace
'='           Operator.Word
' '           Text.Whitespace
'fooPlugin'   Name
'\n'          Text.Whitespace

'instance'    Keyword.Reserved
' '           Text.Whitespace
'HasAcidState' Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'ReaderT'     Keyword.Type
' '           Text.Whitespace
'('           Punctuation
'AcidState'   Keyword.Type
' '           Text.Whitespace
'FooState'    Keyword.Type
')'           Punctuation
' '           Text.Whitespace
'('           Punctuation
'ServerPartT' Keyword.Type
' '           Text.Whitespace
'IO'          Keyword.Type
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'FooState'    Keyword.Type
' '           Text.Whitespace
'where'       Keyword.Reserved
'\n    '      Text.Whitespace
'getAcidState' Name
' '           Text.Whitespace
'='           Operator.Word
' '           Text.Whitespace
'ask'         Name
'\n'          Text.Whitespace

'withFooPlugin' Name.Function
' '           Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'('           Punctuation
'MonadIO'     Keyword.Type
' '           Text.Whitespace
'm'           Name
','           Punctuation
' '           Text.Whitespace
'MonadBaseControl' Keyword.Type
' '           Text.Whitespace
'IO'          Keyword.Type
' '           Text.Whitespace
'm'           Name
')'           Punctuation
' '           Text.Whitespace
'=>'          Operator.Word
' \n                 ' Text.Whitespace
'FilePath'    Keyword.Type
'                          ' Text.Whitespace
'-- ^ path to state directory' Comment.Single
'\n              ' Text.Whitespace
'->'          Operator.Word
' '           Text.Whitespace
'('           Punctuation
'ServerPartT' Keyword.Type
' '           Text.Whitespace
'IO'          Keyword.Type
' '           Text.Whitespace
'Response'    Keyword.Type
' '           Text.Whitespace
'->'          Operator.Word
' '           Text.Whitespace
'm'           Name
' '           Text.Whitespace
'a'           Name
')'           Punctuation
'  '          Text.Whitespace
'-- ^ function that uses fooPlugin' Comment.Single
'\n              ' Text.Whitespace
'->'          Operator.Word
' '           Text.Whitespace
'm'           Name
' '           Text.Whitespace
'a'           Name
'\n'          Text.Whitespace

'withFooPlugin' Name.Function
' '           Text.Whitespace
'basePath'    Name
' '           Text.Whitespace
'f'           Name
' '           Text.Whitespace
'='           Operator.Word
'\n       '   Text.Whitespace
'do'          Keyword.Reserved
' '           Text.Whitespace
'withLocalState' Name
' '           Text.Whitespace
'('           Punctuation
'Just'        Keyword.Type
' '           Text.Whitespace
'$'           Operator
' '           Text.Whitespace
'basePath'    Name
' '           Text.Whitespace
'</>'         Operator
' '           Text.Whitespace
'"'           Literal.String
'foo'         Literal.String
'"'           Literal.String
')'           Punctuation
' '           Text.Whitespace
'initialFooState' Name
' '           Text.Whitespace
'$'           Operator
' '           Text.Whitespace
'\\'          Name.Function
'fooState'    Name
' '           Text.Whitespace
'->'          Operator.Word
' \n              ' Text.Whitespace
'f'           Name
' '           Text.Whitespace
'$'           Operator
' '           Text.Whitespace
'runReaderT'  Name
' '           Text.Whitespace
'fooReaderPlugin' Name
' '           Text.Whitespace
'fooState'    Name
'\n'          Text.Whitespace

"main'"       Name.Function
' '           Text.Whitespace
'::'          Operator.Word
' '           Text.Whitespace
'IO'          Keyword.Type
' '           Text.Whitespace
'()'          Name.Builtin
'\n'          Text.Whitespace

"main'"       Name.Function
' '           Text.Whitespace
'='           Operator.Word
' \n    '     Text.Whitespace
'withFooPlugin' Name
' '           Text.Whitespace
'"'           Literal.String
'_state'      Literal.String
'"'           Literal.String
' '           Text.Whitespace
'$'           Operator
' '           Text.Whitespace
'\\'          Name.Function
"fooPlugin'"  Name
' '           Text.Whitespace
'->'          Operator.Word
'\n        '  Text.Whitespace
'withAcid'    Name
' '           Text.Whitespace
'Nothing'     Keyword.Type
' '           Text.Whitespace
'$'           Operator
' '           Text.Whitespace
'\\'          Name.Function
'acid'        Name
' '           Text.Whitespace
'->'          Operator.Word
'\n            ' Text.Whitespace
'simpleHTTP'  Name
' '           Text.Whitespace
'nullConf'    Name
' '           Text.Whitespace
'$'           Operator
' '           Text.Whitespace
"fooPlugin'"  Name
' '           Text.Whitespace
'`'           Punctuation
'mplus'       Name
'`'           Punctuation
' '           Text.Whitespace
'runApp'      Name
' '           Text.Whitespace
'acid'        Name
' '           Text.Whitespace
'page'        Name
'\n'          Text.Whitespace
