Scroll to navigation



curry-frontend - Lexer, parser, type checker, etc. for the Curry programming language


curry-frontend [OPTIONS] ... MODULES ...


The Curry Frontend consists of the executable program "curry-frontend". It is used by various backends to compile programs written in the functional logic language Curry to various intermediate representations.

For further information, please check


-h, -?, --help
display this help and exit
-V, --version
show the version number and exit
show the numeric version number and exit
-v <n>, --verbosity=<n>
set verbosity level <n>, where <n> is one of 0: quiet 1: status
-q, --no-verb
set verbosity level to quiet
-f, --force
force compilation of target file
-P dir[:dir], --lib-dir=<dir1>[:<dir2>]
search for libraries in <dir1>[:<dir2>]
-i dir[:dir], --import-dir=<dir>[:<dir2>]
search for imports in <dir1>[:<dir2>]
write HTML documentation into directory <dir>
disable writing to `.curry' subdirectory
do not create an interface file
do not print warnings
do not print warnings for overlapping rules
generate token stream
generate source representation
generate FlatCurry code
generate FlatCurry code with source references
generate typed AbstractCurry
generate untyped AbstractCurry
generate html documentation
use custom preprocessor
execute preprocessor command <cmd>
execute preprocessor with option <option>
-e, --extended
enable extended Curry functionalities
-X ext
set language extension `ext', where `ext' is one of AnonFreeVars : enable anonymous free variables FunctionalPatterns: enable functional patterns NegativeLiterals : desugar negated literals as negative literal NoImplicitPrelude : do not implicitly import the Prelude
-W <opt>
set warning option `opt', where `opt' is one of:
all : turn on all warnings
none : turn off all warnings
error : treat warnings as errors
multiple-imports : warn for multiple imports
disjoined-rules : warn for disjoined function rules
unused-global-bindings : warn for unused bindings
unused-bindings : warn for unused bindings
name-shadowing : warn for name shadowing
overlapping : warn for overlapping function rules
incomplete-patterns : warn for incomplete pattern matching
missing-signatures : warn for missing type signatures
no-multiple-imports : do not warn for multiple imports
no-disjoined-rules : don't warn for disjoined function rules
no-unused-global-bindings : do not warn for unused bindings
no-unused-bindings : do not warn for unused bindings
no-name-shadowing : do not warn for name shadowing
no-overlapping : do not warn for overlapping function rules
no-incomplete-patterns : do not warn for incomplete pattern matching
no-missing-signatures : do not warn for missing type signatures
-d <opt>
set debug option `opt', where `opt' is one of:
dump-all : dump everything
dump-none : dump nothing
dump-env : additionally dump compiler environment
dump-raw : dump as raw AST (instead of pretty printing)
dump-parse : dump code after parsing
dump-kc : dump code after kind checking
dump-sc : dump code after syntax checking
dump-pc : dump code after precedence checking
dump-tc : dump code after type checking
dump-ec : dump code after export checking
dump-qual : dump code after qualification
dump-ds : dump code after desugaring
dump-lift : dump code after lifting
dump-simpl : dump code after simplification
dump-trans : dump code after pattern matching compilation
dump-cc : dump code after case completion
dump-flat : dump code after translation into FlatCurry


This manual page has been created using the help2man tool (version 1.47.4) and edited afterwards by Mike Gabriel <>. This man page has been written for the Debian project initially, but may also be used by others.
December 2016 0.4.2