Protocol to communicate with the analysis server
================================================

Server commands:
----------------
GetAnalysis
SetCurryPath <dir1>:<dir2>:...
StopServer
AnalyzeModule          <kind of analysis> <output type> <module name>
AnalyzeInterface       <kind of analysis> <output type> <module name>
AnalyzeFunction        <kind of analysis> <output type> <module name> <function name>
AnalyzeDataConstructor <kind of analysis> <output type> <module name> <constructor name>
AnalyzeTypeConstructor <kind of analysis> <output type> <module name> <type name>

Server answers:
---------------
error ...
ok <n>\n<result text>
(here <n> denotes the number of lines in <result text>)

The answer to the command `GetAnalysis` is a list of all available
analyses. The list has the form "<kind of analysis> <output type>".
For instance, a communication could be:

> GetAnalysis
< ok 5
< Deterministic CurryTerm
< Deterministic Text
< Deterministic XML
< HigherOrder   CurryTerm
< DependsOn     CurryTerm

Further examples for server requests:

> AnalyzeModule Deterministic CurryTerm SolverServer

> AnalyzeModule Deterministic Text SolverServer

> AnalyzeModule Deterministic XML SolverServer

> AnalyzeFunction        Deterministic XML       SolverServer main

> AnalyzeDataConstructor HigherOrder   CurryTerm Prelude      Just

> AnalyzeFunction        DependsOn     CurryTerm SolverServer main

