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


display this help and exit
show the version number and exit
show the numeric version number and exit
set verbosity level <n>, where <n> is one of 0: quiet 1: status
set verbosity level to quiet
force compilation of target file
search for libraries in <dir1>[:<dir2>]
search for imports in <dir1>[:<dir2>]
write compilation artifacts (FlatCurry, ...) into directory <dir>
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>
enable extended Curry functionalities
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
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
redundant-context : warn for redundant context
no-multiple-imports : do not warn for multiple imports
no-disjoined-rules : don't warn for disjoined function
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
no-incomplete-patterns : do not warn for incomplete pattern
no-missing-signatures : do not warn for missing type
no-missing-methods : do not warn for missing method implementations
no-orphan-instances : do not warn for orphan instances
no-irregular-case-mode : do not warn for irregular case mode
no-redundant-context : do not warn for redundant context

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

set optimization option `opt', where `opt' is one of
desugar-newtypes : desugars newtypes in FlatCurry
inline-dictionaries : inlines type class dictionaries
remove-unused-imports : removes unused imports
no-desugar-newtypes : prevents desugaring of newtypes in FlatCurry
no-inline-dictionaries : prevents inlining of type class dictionaries
no-remove-unused-imports : prevents removing of unused imports


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