man(1)
π 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--listlogcatsto 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,Nodeandbytecodeare 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 (TypeProvidersorErrorReflection)--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.corei7orcortex-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:
- The IDRIS web site (https://idris-lang.org/
- The IRC channel
#idris, onchat.freenode.net - The wiki (https://github.com/idris-lang/Idris-dev/wiki/) has further user provided information, in particular:
π 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
- arch rolling: idris 1.3.4-606 Β· BSD
- fedora 43: idris 1.3.4-21.fc43 Β· BSD-3-Clause
- fedora 44: idris 1.3.4-26.fc44 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms