man(1)

πŸ“¦ version 1.3.4, in arch rolling, fedora 43, fedora 44

πŸ’– man(1) β€” the idris manual, but make it a group chat πŸ’–

okay bestie, you opened man(1) for idris and I am SO glad you did, because this language is genuinely iconic and you deserve to know everything about it. let's get into it 🫢


✨ NAME ✨

idris β€” a general purpose pure functional programming language with dependent types. yes that's the whole name section, she's short but she's powerful πŸ’…


🌸 SYNOPSIS 🌸

idris [ options] [FILES]

πŸ¦‹ DESCRIPTION πŸ¦‹

so. Idris is a general purpose pure functional programming language with dependent types. and when I say dependent types, I mean types can be predicated on values β€” which is lowkey the coolest thing ever, because it means some aspects of a program's behaviour can be specified precisely in the type. she's compiled, she uses eager evaluation, and her features are influenced by Haskell and ML. a nepo baby in the best way πŸ’–

here's the full feature list, no skips, no cuts:

  • Full dependent types with dependent pattern matching
  • Simple case expressions, where-clauses, with-rule
  • Pattern matching let- and lambda-bindings
  • Overloading via Interfaces (Type class-like), Monad comprehensions
  • do-notation, idiom brackets
  • Syntactic conveniences for lists, tuples, dependent pairs
  • Totality checking
  • Coinductive types
  • Indentation significant syntax, Extensible syntax
  • Tactic based theorem proving (influenced by Coq)
  • Cumulative universes
  • Simple Foreign Function Interface
  • Hugs style interactive environment
⚠️ okay important thing, bestie, real talk: it is important to note that Idris is first and foremost a research tool and project. so the tooling provided and the resulting programs created should not necessarily be seen as production ready nor for industrial use. she's a research queen, not a corporate girlie. no cap.

πŸŽ€ OPTIONS πŸŽ€

every single one, periodt:

  • --nobanner β€” Suppress the banner
  • -q,--quiet β€” Quiet verbosity
  • --ide-mode β€” Run the Idris REPL with machine-readable syntax
  • --ide-mode-socket β€” Choose a socket for IDE mode to listen on
  • --ideslave β€” Deprecated version of --ide-mode
  • --ideslave-socket β€” Deprecated version of --ide-mode-socket
  • --log LEVEL β€” Debugging log level
  • --logging-categories CATS β€” Colon separated logging categories. Use --listlogcats to see list.
  • --nobasepkgs β€” Do not use the given base package
  • --noprelude β€” Do not use the given prelude
  • --nobuiltins β€” Do not use the builtin functions
  • --check β€” Typecheck only, don't start the REPL
  • -o,--output FILE β€” Specify output file
  • --interface β€” Generate interface files from ExportLists
  • --typeintype β€” Turn off Universe checking
  • --total β€” Require functions to be total by default
  • --warnpartial β€” Warn about undeclared partial functions
  • --warnreach β€” Warn about reachable but inaccessible arguments
  • --listlogcats β€” Display logging categories
  • --link β€” Display link flags
  • --listlibs β€” Display installed libraries
  • --libdir β€” Display library directory
  • --include β€” Display the includes flags
  • --V2 β€” Loudest verbosity
  • --V1 β€” Louder verbosity
  • -V, --V0, --verbose β€” Loud verbosity
  • --ibcsubdir FILE β€” Write IBC files into sub directory
  • -i,--idrispath ARG β€” Add directory to the list of import paths
  • --sourcepath ARG β€” Add directory to the list of source search paths
  • -p,--package ARG β€” Add package as a dependency
  • --port PORT β€” REPL TCP port
  • --build IPKG β€” Build package
  • --install IPKG β€” Install package
  • --repl IPKG β€” Launch REPL, only for executables
  • --clean IPKG β€” Clean package
  • --mkdoc IPKG β€” Generate IdrisDoc for package
  • --checkpkg IPKG β€” Check package only
  • --testpkg IPKG β€” Run tests for package
  • -S,--codegenonly β€” Do no further compilation of code generator output
  • -c,--compileonly β€” Compile to object files rather than an executable
  • --codegen TARGET β€” Select code generator: C, Javascript, Node and bytecode are bundled with Idris
  • --cg-opt ARG β€” Arguments to pass to code generator
  • -e,--eval EXPR β€” Evaluate an expression without loading the REPL
  • --execute β€” Execute as idris
  • --exec EXPR β€” Execute as idris
  • -X,--extension EXT β€” Turn on language extension (TypeProviders or ErrorReflection)
  • --partial-eval β€” Switch on partial evaluation
  • --target TRIPLE β€” If supported the codegen will target the named triple.
  • --cpu CPU β€” If supported the codegen will target the named CPU, e.g. corei7 or cortex-m3.
  • --color,--colour β€” Force coloured output
  • --nocolor,--nocolour β€” Disable coloured output
  • --optimise-nat-like-types,--optimize-nat-like-types β€” Compile Nat-like types to big ints
  • --no-optimise-nat-like-types,--no-optimize-nat-like-types β€” Do not compile Nat-like types to big ints
  • --consolewidth WIDTH β€” Select console width: auto, infinite, nat
  • --highlight β€” Emit source code highlighting
  • --no-tactic-deprecation-warnings β€” Disable deprecation warnings for the old tactic sublanguage
  • -v,--version β€” Print version information
  • -h,--help β€” Show this help text

πŸ‘‘ SEE ALSO πŸ‘‘

go forth and lurk, bestie:


πŸ’œ AUTHOR πŸ’œ

The Idris Community β€” collectively serving, as always πŸ‘‘


and that's the whole page, babes 🌈 this manual was version 1.3.3, dated 23 May 2020, and it lives under man(1). go typecheck something, you got this πŸ’–βœ¨

πŸ“¦ where this page comes from