This module contains a pretty printer for ICurry programs.
Author: Marc Andre Wittorf and Michael Hanus
Version: June 2020
| ppIProg
                  ::  IProg -> DocPretty print an ICurry module | 
| ppHeader
                  ::  String -> DocPretty print an ICurry module header | 
| ppImports
                  ::  [String] -> DocPretty print an ICurry module import list | 
| ppImport
                  ::  String -> DocPretty print an import directive | 
| ppDataTypes
                  ::  [IDataType] -> DocPretty print ICurry types | 
| ppDataType
                  ::  IDataType -> DocPretty print an ICurry type | 
| ppConstructors
                  ::  [((String,String,Int),Int)] -> DocPretty print ICurry constructors | 
| ppConstructor
                  ::  ((String,String,Int),Int) -> DocPretty print an ICurry constructor | 
| ppFunctions
                  ::  [IFunction] -> DocPretty print ICurry functions | 
| ppFunction
                  ::  IFunction -> DocPretty print an ICurry function | 
| ppQName
                  ::  (String,String,Int) -> DocPretty print a qualified ICurry name (module.localname) | 
| ppFuncBody
                  ::  IFuncBody -> DocPretty print an ICurry function's body | 
| ppVars
                  ::  [Int] -> DocPretty print a list of variables | 
| ppVar
                  ::  Int -> DocPretty print a variable. | 
| ppBlock
                  ::  IBlock -> DocPretty print an ICurry block | 
| ppStatement
                  ::  IStatement -> DocPretty print an ICurry block | 
| ppVarDecls
                  ::  [IVarDecl] -> DocPretty print local variable declarations | 
| ppVarDecl
                  ::  IVarDecl -> DocPretty print a local variable declaration. | 
| ppAssignments
                  ::  [IAssign] -> DocPretty print assignments | 
| ppAssignment
                  ::  IAssign -> DocPretty print an assignment | 
| ppExprs
                  ::  [IExpr] -> DocPretty print comma separated expressions | 
| ppExpr
                  ::  IExpr -> DocPretty print an ICurry expression | 
| ppConsBranches
                  ::  [IConsBranch] -> DocPretty print branches over constructors | 
| ppConsBranch
                  ::  IConsBranch -> DocPretty print a branch over constructors | 
| ppLitBranches
                  ::  [ILitBranch] -> DocPretty print branches over literals | 
| ppLitBranch
                  ::  ILitBranch -> DocPretty print a branch over literals | 
| ppPos
                  ::  [Int] -> DocPretty print an ICurry position | 
| ppLit
                  ::  ILiteral -> DocPretty print an ICurry literal | 
| Pretty print an ICurry module 
 
 
 | 
| Pretty print an ICurry module header 
 
 
 | 
| Pretty print an ICurry module import list 
 
 
 | 
| Pretty print an import directive 
 
 
 | 
| 
                       Pretty print ICurry types 
 
 
 | 
| 
                       Pretty print an ICurry type 
 
 
 | 
| 
                       Pretty print ICurry constructors 
 
 
 | 
| 
                       Pretty print an ICurry constructor 
 
 
 | 
| 
                       Pretty print ICurry functions 
 
 
 | 
| 
                       Pretty print an ICurry function 
 
 
 | 
| 
                       Pretty print a qualified ICurry name (module.localname) 
 
 
 | 
| 
                       Pretty print an ICurry function's body 
 
 
 | 
| Pretty print a list of variables 
 
 
 | 
| 
                      Pretty print a variable. Variables are called x0, x1, ...
Since variable with index 0 is always used for the root,
we print it as  
 
 
 | 
| Pretty print an ICurry block 
 
 
 | 
| 
                       Pretty print an ICurry block 
 
 
 | 
| 
                       Pretty print local variable declarations 
 
 
 | 
| 
                       Pretty print assignments 
 
 
 | 
| 
                       Pretty print an assignment 
 
 
 | 
| Pretty print comma separated expressions 
 
 
 | 
| Pretty print an ICurry expression 
 
 
 | 
| 
                       Pretty print branches over constructors 
 
 
 | 
| 
                       Pretty print a branch over constructors 
 
 
 | 
| 
                       Pretty print branches over literals 
 
 
 | 
| 
                       Pretty print a branch over literals 
 
 
 |