| 
                       | 
This is the implementation of the currycheck tool. It performs various checks on Curry programs:
Author: Michael Hanus, Jan-Patrick Baye
Version: December 2017
| maxArity
                  :: IntMaximal arity of check functions and tuples currently supported: | 
| ccBanner
                  :: String | 
| usageText
                  :: String | 
| defaultOptions
                  :: Options | 
| options
                  :: [OptDescr (Options -> Options)] | 
| processOpts
                  :: Options -> IO OptionsFurther option processing, e.g., setting coloring mode. | 
| isQuiet
                  :: Options -> Bool | 
| putStrIfNormal
                  :: Options -> String -> IO ()Print second argument if verbosity level is not quiet: | 
| putStrIfVerbose
                  :: Options -> String -> IO ()Print second argument if verbosity level > 1: | 
| putStrLnIfDebug
                  :: Options -> String -> IO ()Print second argument if verbosity level > 3: | 
| withColor
                  :: Options -> (String -> String) -> String -> Stringuse some coloring (from library AnsiCodes) if color option is on: | 
| defTypeSuffix
                  :: String | 
| postCondSuffix
                  :: String | 
| satSpecSuffix
                  :: String | 
| isDetSuffix
                  :: String | 
| isIOTest
                  :: Test -> Bool | 
| isUnitTest
                  :: Test -> Bool | 
| isPropTest
                  :: Test -> Bool | 
| isEquivTest
                  :: Test -> Bool | 
| getTestName
                  :: Test -> (String,String) | 
| getTestLine
                  :: Test -> Int | 
| genTestMsg
                  :: String -> Test -> String | 
| staticErrorTestMod
                  :: String -> [String] -> TestModule | 
| testThisModule
                  :: TestModule -> Bool | 
| userTestDataOfModule
                  :: TestModule -> [((String,String),Bool)] | 
| equivPropTypes
                  :: TestModule -> [(String,String)] | 
| createTests
                  :: Options -> String -> TestModule -> [CFuncDecl] | 
| easyCheckConfig
                  :: Options -> (String,String) | 
| type2genop
                  :: String -> TestModule -> Bool -> CTypeExpr -> CExpr | 
| isFloatType
                  :: CTypeExpr -> Bool | 
| typename2genopname
                  :: String -> [(String,String)] -> Bool -> (String,String) -> (String,String) | 
| transQN
                  :: String -> String | 
| makeAllPublic
                  :: CurryProg -> CurryProg | 
| classifyTests
                  :: Options -> CurryProg -> [CFuncDecl] -> [Test] | 
| transformTests
                  :: Options -> String -> CurryProg -> IO ([CFuncDecl],[CFuncDecl],CurryProg) | 
| transformDetTests
                  :: Options -> [String] -> CurryProg -> ([CFuncDecl],[CFuncDecl],CurryProg) | 
| preCondOperations
                  :: [CFuncDecl] -> [(String,String)] | 
| funDeclsWith
                  :: (String -> Bool) -> [CFuncDecl] -> [CFuncDecl] | 
| propResultType
                  :: CTypeExpr -> CTypeExpr | 
| genPostCondTest
                  :: [(String,String)] -> [(String,String)] -> CFuncDecl -> [CFuncDecl] | 
| genSpecTest
                  :: [(String,String)] -> [(String,String)] -> CFuncDecl -> [CFuncDecl] | 
| revertDetOpTrans
                  :: [(String,String)] -> CFuncDecl -> CFuncDecl | 
| genDetOpTests
                  :: [String] -> [(String,String)] -> [CFuncDecl] -> [CFuncDecl] | 
| genDetProp
                  :: [(String,String)] -> CFuncDecl -> CFuncDecl | 
| poly2default
                  :: String -> CFuncDecl -> [(Bool,CFuncDecl)] | 
| poly2defaultType
                  :: String -> CTypeExpr -> CTypeExpr | 
| orgTestName
                  :: (String,String) -> (String,String) | 
| analyseModule
                  :: Options -> String -> IO [TestModule] | 
| staticProgAnalysis
                  :: Options -> String -> String -> CurryProg -> IO ([String],[((String,String),String)]) | 
| analyseCurryProg
                  :: Options -> String -> CurryProg -> IO [TestModule] | 
| generatorsOfProg
                  :: CurryProg -> [(String,String)] | 
| genBottomType
                  :: String -> TypeDecl -> CTypeDecl | 
| isBasicExtType
                  :: (String,String) -> Bool | 
| defaultValueOfBasicExtType
                  :: String -> CLiteral | 
| ctype2BotType
                  :: String -> CTypeExpr -> CTypeExpr | 
| t2bt
                  :: String -> String | 
| genPeval
                  :: String -> TypeDecl -> CFuncDecl | 
| genPValOf
                  :: String -> TypeDecl -> CFuncDecl | 
| ftype2pvalOf
                  :: String -> String -> [(Int,String)] -> TypeExpr -> CExpr | 
| ctype2pvalOf
                  :: String -> String -> CTypeExpr -> CExpr | 
| ctypedecl2ftypedecl
                  :: CTypeDecl -> TypeDecl | 
| genMainTestModule
                  :: Options -> String -> [TestModule] -> IO () | 
| genMainFunction
                  :: Options -> String -> [Test] -> CFuncDecl | 
| collectAllTestTypeDecls
                  :: [(TypeDecl,Bool)] -> [((String,String),Bool)] -> IO [(TypeDecl,Bool)] | 
| createTestDataGenerator
                  :: String -> (TypeDecl,Bool) -> CFuncDecl | 
| cleanup
                  :: Options -> String -> [TestModule] -> IO () | 
| showTestStatistics
                  :: [TestModule] -> String | 
| main
                  :: IO () | 
| renameProp2EasyCheck
                  :: CurryProg -> CurryProg | 
| firstWord
                  :: String -> String | 
| stripSuffix
                  :: String -> String -> String | 
| modNameToId
                  :: String -> String | 
| arityOfType
                  :: CTypeExpr -> Int | 
| searchTreeModule
                  :: StringName of the SearchTree module. | 
| searchTreeTC
                  :: (String,String)Name of SearchTree type constructor. | 
| generatorModule
                  :: StringName of the SearchTreeGenerator module. | 
| choiceGen
                  :: (String,String) | 
| writeCurryProgram
                  :: Options -> String -> CurryProg -> String -> IO () | 
| isPAKCS
                  :: Bool | 
| containsPPOptionLine
                  :: String -> Bool | 
| tconsOf
                  :: CTypeExpr -> [(String,String)] | 
| unionOn
                  :: (a -> [b]) -> [a] -> [b] | 
Constructors:
Options
                    ::  Bool ->  Int ->  Bool ->  Int ->  Int ->  String ->  Bool ->  Bool ->  Bool ->  Bool ->  Bool ->  Bool ->  String -> Options
                Fields:
optHelp
                        :: Bool
                  optVerb
                        :: Int
                  optKeep
                        :: Bool
                  optMaxTest
                        :: Int
                  optMaxFail
                        :: Int
                  optDefType
                        :: String
                  optSource
                        :: Bool
                  optProp
                        :: Bool
                  optSpec
                        :: Bool
                  optDet
                        :: Bool
                  optProof
                        :: Bool
                  optColor
                        :: Bool
                  optMainProg
                        :: String
                  Constructors:
PropTest
                    ::  QName ->  CTypeExpr ->  Int -> Test
              IOTest
                    ::  QName ->  Int -> Test
              EquivTest
                    ::  QName ->  QName ->  QName ->  CTypeExpr ->  Int -> Test
              Constructors:
| 
                       Maximal arity of check functions and tuples currently supported: 
 | 
| 
                       | 
| 
                       | 
| 
 | 
| 
                       Further option processing, e.g., setting coloring mode. | 
| 
                       Print second argument if verbosity level is not quiet: | 
| 
                       Print second argument if verbosity level > 1: | 
| 
                       Print second argument if verbosity level > 3: | 
| 
                       use some coloring (from library AnsiCodes) if color option is on: | 
| 
                       
 | 
| 
                       
 | 
| 
                       
 | 
| 
                       
 | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       
 | 
| 
                       
 | 
| 
                       | 
| 
                       
 | 
| 
                       
 | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       Name of the SearchTree module. 
 | 
| 
                       Name of SearchTree type constructor. 
 | 
| 
                       Name of the SearchTreeGenerator module. 
 | 
| 
                       
 | 
| 
                       | 
| 
                       | 
| 
                       | 
| 
                       |