CURRY-FRONTEND(1)

πŸ“¦ version 2.0.0, in ubuntu jammy

πŸ’– NAME πŸ’–

curry-frontend β€” bestie, this is the lexer, parser, type checker and honestly the entire backstage crew for the Curry programming language. she does it all. πŸ‘‘


✨ SYNOPSIS ✨

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

🌸 DESCRIPTION 🌸

okay so the Curry Frontend is literally just one executable program, and it's called curry-frontend. various backends pull up and use it to compile programs written in the functional logic language Curry into all kinds of intermediate representations. she's the plug fr fr. πŸ’…

want the full lore? go check out http://currry-language.org πŸ¦‹


πŸ‘‘ OPTIONS πŸ‘‘

  • -h, -?, --help β€” show this help and then dip. bye. πŸ™ˆ
  • -V, --version β€” show the version number and exit
  • --numeric-version β€” show just the numeric version number and exit
  • -v <n>, --verbosity=<n> β€” set the verbosity level to <n>, where <n> is one of these: 0 means quiet, 1 means status. that's the whole menu bestie. πŸ”₯
  • -q, --no-verb β€” set verbosity level to quiet (shhh 🀫)
  • -f, --force β€” force compilation of the target file, no excuses, no questions
  • -P dir[:dir], --lib-dir=<dir1>[:<dir2>] β€” go search for libraries in <dir1>[:<dir2>]
  • -i dir[:dir], --import-dir=<dir1>[:<dir2>] β€” go search for imports in <dir1>[:<dir2>]
  • -o dir, --output-dir=<dir> β€” write the compilation artifacts (FlatCurry, ...) into directory <dir>
  • --htmldir=<dir> β€” write the HTML documentation into directory <dir>
  • --no-outdir, --no-subdir β€” disable writing to the .curry subdirectory
  • --no-intf β€” do not create an interface file
  • --no-warn β€” do not print warnings (living in denial era πŸ’€)
  • --no-overlap-warn β€” do not print warnings for overlapping rules
  • --tokens β€” generate the token stream
  • --parse-only β€” generate the source representation
  • --flat β€” generate FlatCurry code
  • --extended-flat β€” generate FlatCurry code, but with source references this time
  • --acy β€” generate typed AbstractCurry
  • --uacy β€” generate untyped AbstractCurry
  • --html β€” generate html documentation
  • -F β€” use a custom preprocessor
  • --pgmF=<cmd> β€” execute the preprocessor command <cmd>
  • --optF=<option> β€” execute the preprocessor with option <option>
  • -e, --extended β€” enable the extended Curry functionalities ✨
  • -X ext β€” set the language extension ext, where ext is one of these icons:
    • 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 the warning option opt, where opt is one of:
    • all β€” turn on all warnings, every single one, go feral
    • none β€” turn off all warnings
    • error β€” treat warnings as errors (they're not just vibes anymore, they're real)
    • 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 the debug option opt, where opt is one of:
    • dump-all β€” dump everything, no thoughts, just dumps
    • dump-none β€” dump nothing
    • dump-env β€” additionally dump the 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 the 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 was created using the help2man tool (version 1.47.4) and then edited afterwards by Mike Gabriel <mike.gabriel@das-netzwerkteam.de>. this man page was written for the Debian project initially, but it may also be used by others. slay, sharing is caring 🫢


and that's the whole thing bestie, no cap. this page is version 0.4.2, dated December 2016 β€” vintage but still iconic, periodt. πŸ’œπŸŒˆβœ¨

πŸ“¦ where this page comes from