---
name: "curry-frontend"
section: "1"
platform: "linux"
package: "curry-frontend"
version: "2.0.0-2"
release: "Debian 11 (Bullseye)"
platforms: ["linux"]
url: "https://new.carta.tech/curry-frontend"
---

# curry-frontend(1)

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

## NAME

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

## SYNOPSIS

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

## DESCRIPTION

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 http://currry-language.org

## OPTIONS

- **-h**, -?, **--help**

  display this help and exit

- **-V**, **--version**

  show the version number and exit

- **--numeric-version**

  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**=*\<dir1\>\[:\<dir2\>\]*

  search for imports in *\<dir1\>\[:\<dir2\>\]*

- **-o** dir, **--output-dir**=*\<dir\>*

  write compilation artifacts (FlatCurry, ...) into directory *\<dir\>*

- **--htmldir**=*\<dir\>*

  write HTML documentation into directory *\<dir\>*

- **--no-outdir, --no-subdir**

  disable writing to \`.curry' subdirectory

- **--no-intf**

  do not create an interface file

- **--no-warn**

  do not print warnings

- **--no-overlap-warn**

  do not print warnings for overlapping rules

- **--tokens**

  generate token stream

- **--parse-only**

  generate source representation

- **--flat**

  generate FlatCurry code

- **--extended-flat**

  generate FlatCurry code with source references

- **--acy**

  generate typed AbstractCurry

- **--uacy**

  generate untyped AbstractCurry

- **--html**

  generate html documentation

- **-F**

  use custom preprocessor

- **--pgmF**=*\<cmd\>*

  execute preprocessor command \<cmd\>

- **--optF**=*\<option\>*

  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

-

  redundant-context            : warn for redundant context

-

  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

-

  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

- **-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

- **-O** *\<opt\>*

  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

## AUTHOR

This manual page has been created using the help2man tool (version 1.47.4) and edited afterwards by Mike Gabriel \<mike.gabriel@das-netzwerkteam.de\>. This man page has been written for the Debian project initially, but may also be used by others.
