HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
edwinb
Idris2
Idris2019–2020
edwinb / Idris2

Idris2

A purely functional programming language with first class types

5Distinct people
5Mentions
0Explicit recommenders
58GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A purely functional programming language with first class types

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by week5 dated mentions

Observed mentions: 2019-07-08 22:08:25 UTC to 2020-01-30 21:29:34 UTC. Weeks start Monday, UTC.

012019-07-08 00:00:00 UTC to 2019-07-15 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 commentsJul 82019-07-15 00:00:00 UTC to 2019-07-22 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-07-22 00:00:00 UTC to 2019-07-29 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2019-07-29 00:00:00 UTC to 2019-08-05 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-08-05 00:00:00 UTC to 2019-08-12 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-08-12 00:00:00 UTC to 2019-08-19 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-08-19 00:00:00 UTC to 2019-08-26 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-08-26 00:00:00 UTC to 2019-09-02 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-09-02 00:00:00 UTC to 2019-09-09 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-09-09 00:00:00 UTC to 2019-09-16 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-09-16 00:00:00 UTC to 2019-09-23 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-09-23 00:00:00 UTC to 2019-09-30 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-09-30 00:00:00 UTC to 2019-10-07 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-10-07 00:00:00 UTC to 2019-10-14 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-10-14 00:00:00 UTC to 2019-10-21 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsOct 142019-10-21 00:00:00 UTC to 2019-10-28 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-10-28 00:00:00 UTC to 2019-11-04 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2019-11-04 00:00:00 UTC to 2019-11-11 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-11-11 00:00:00 UTC to 2019-11-18 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-11-18 00:00:00 UTC to 2019-11-25 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-11-25 00:00:00 UTC to 2019-12-02 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-12-02 00:00:00 UTC to 2019-12-09 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-12-09 00:00:00 UTC to 2019-12-16 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-12-16 00:00:00 UTC to 2019-12-23 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-12-23 00:00:00 UTC to 2019-12-30 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-12-30 00:00:00 UTC to 2020-01-06 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-01-06 00:00:00 UTC to 2020-01-13 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-01-13 00:00:00 UTC to 2020-01-20 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-01-20 00:00:00 UTC to 2020-01-27 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2020-01-27 00:00:00 UTC to 2020-02-03 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsJan 27

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Jul 82019-07-08 00:00:00 UTC2019-07-15 00:00:00 UTC110
Jul 152019-07-15 00:00:00 UTC2019-07-22 00:00:00 UTC000
Jul 222019-07-22 00:00:00 UTC2019-07-29 00:00:00 UTC101
Jul 292019-07-29 00:00:00 UTC2019-08-05 00:00:00 UTC000
Aug 52019-08-05 00:00:00 UTC2019-08-12 00:00:00 UTC000
Aug 122019-08-12 00:00:00 UTC2019-08-19 00:00:00 UTC000
Aug 192019-08-19 00:00:00 UTC2019-08-26 00:00:00 UTC000
Aug 262019-08-26 00:00:00 UTC2019-09-02 00:00:00 UTC000
Sep 22019-09-02 00:00:00 UTC2019-09-09 00:00:00 UTC000
Sep 92019-09-09 00:00:00 UTC2019-09-16 00:00:00 UTC000
Sep 162019-09-16 00:00:00 UTC2019-09-23 00:00:00 UTC000
Sep 232019-09-23 00:00:00 UTC2019-09-30 00:00:00 UTC000
Sep 302019-09-30 00:00:00 UTC2019-10-07 00:00:00 UTC000
Oct 72019-10-07 00:00:00 UTC2019-10-14 00:00:00 UTC000
Oct 142019-10-14 00:00:00 UTC2019-10-21 00:00:00 UTC000
Oct 212019-10-21 00:00:00 UTC2019-10-28 00:00:00 UTC000
Oct 282019-10-28 00:00:00 UTC2019-11-04 00:00:00 UTC101
Nov 42019-11-04 00:00:00 UTC2019-11-11 00:00:00 UTC000
Nov 112019-11-11 00:00:00 UTC2019-11-18 00:00:00 UTC000
Nov 182019-11-18 00:00:00 UTC2019-11-25 00:00:00 UTC000
Nov 252019-11-25 00:00:00 UTC2019-12-02 00:00:00 UTC000
Dec 22019-12-02 00:00:00 UTC2019-12-09 00:00:00 UTC000
Dec 92019-12-09 00:00:00 UTC2019-12-16 00:00:00 UTC000
Dec 162019-12-16 00:00:00 UTC2019-12-23 00:00:00 UTC000
Dec 232019-12-23 00:00:00 UTC2019-12-30 00:00:00 UTC000
Dec 302019-12-30 00:00:00 UTC2020-01-06 00:00:00 UTC000
Jan 62020-01-06 00:00:00 UTC2020-01-13 00:00:00 UTC000
Jan 132020-01-13 00:00:00 UTC2020-01-20 00:00:00 UTC000
Jan 202020-01-20 00:00:00 UTC2020-01-27 00:00:00 UTC101
Jan 272020-01-27 00:00:00 UTC2020-02-03 00:00:00 UTC101

What Hacker News says

5 sources
It is, and it still exists... it's also a brand new compiler, instead of one with nearly 30 years of development on it, and a brand new ecosystem, instead of having the massive amount of hours that Haskell has in it. Idris is really nice imo, but Haskell+Dependent Types will likely be usable sooner. There is an 'Idris 2' being developed, too (https://github.com/edwinb/Idris2), which is an entirely new compiler with a new type theory (although not entirely dissimilar), which just makes it even harder to use for real things (again, IMO).
In Developing GHC for a Living
I'm not an expert, but yes compile times can get crazy if you're not careful. In theory, the situation is no different from (ab)use of C++ templates, the Rust macro discussed here, and so on. In practice, whereas C and Rust will choke on a 100kloc function, Idris might choke on a 100-liner, depending on what you're doing. Edwin Brady is currently making steady progress on a new compiler--this time written in Idris itself--that's much faster in practice: https://github.com/edwinb/Idris2
In A game in a pure language (part 1): introduction and problems with Idris
So I use QuickCheck often and I'm a true believer, but the point this post is making is absolutely justified. Tying the test generation to the type is often requires some creative ways of writing `Arbitrary` instances (the specification of how test cases should be generated). However, I don't think what the author is suggesting in its place better. The advantage of tying the test case generation to the type is that it's compositional. Lots of sub Arbitrary instances come together to generate the test case and in the long term I find this to be more maintainable. Whereas the author's approach discourages compositionally. The real problem is that the types in vanilla Haskell are too loose, so there lots of inhabitants of a type that we are not interested in. The author mentions in passing, dependent-types might be a solution and that is exa
Read the rest
ctly right. What is needed is to make the irrelevant terms illegal altogether. This is pretty achievable and is already somewhat used. For example, the program synthesis (proof search) mechanism of Idris 2[0] uses linear[1] dependent types[2] to heavily constrain which terms are possible candidates for a given type. The specificity of the type reduces the search space, hence increases the effectiveness of the proof search. [0] https://github.com/edwinb/Idris2 [1] https://en.wikipedia.org/wiki/Substructural_type_system#Line... [2] https://en.wikipedia.org/wiki/Dependent_type
In Moving Beyond Types (2017)

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.