HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
josefs
Gradualizer
Erlang2018–2022
josefs / Gradualizer

Gradualizer

A Gradual type system for Erlang

6Distinct people
8Mentions
1Explicit recommenders
618GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A Gradual type system for Erlang

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

I replied to your post on twitter but I highly recommend Gradualizer[1]. Discovered it last year and started using it. The refinement portion handles unions and guards very…

FrankBro used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

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, 5:04:57 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 year8 dated mentions

Observed mentions: 2018-11-29 12:49:29 UTC to 2022-06-27 20:35:44 UTC.

01232018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2022

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
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC202
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC101
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC303
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC101
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC101

What Hacker News says

8 sources
I'm going to shill Gradualizer[1] in here as well. 1. I think you have to see typing as helpful information. Like: -spec add(integer(), integer()) -> integer(). add(A, B) -> A + B. Technically, nothing prevents add from accepting number() or float(). It's too much specification. 2. I was surprised how much there actually is but also disappointed that a lot of errors were in until OTP 23. Gradualizer also overrides some definitions [2] 3. Haven't encountered a problem with this yet with gradualizer, would need to test. [1] https://github.com/josefs/Gradualizer [2] https://github.com/josefs/Gradualizer/blob/master/priv/prelu...
In Why Typing Erlang is Hard: Standard Erlang
FrankBro·Nov 6, 2020Recommendation phrase
I replied to your post on twitter but I highly recommend Gradualizer[1]. Discovered it last year and started using it. The refinement portion handles unions and guards very well. It's not perfect but I'm integrating it in our codebase with some interesting successes. I'm hoping more people use it on their codebase and can find any bugs they have with it so it can be improved further. [1] https://github.com/josefs/Gradualizer
In Why Typing Erlang is Hard: Standard Erlang
https://github.com/josefs/Gradualizer already introduced above by Zalastax is one project which shows how to do it. It implements the gradual typing model, which merges static typing a'la ML/Haskell, with dynamic typing of Erlang. Other real-world examples of gradually typed languages are Facebook's Hack and TypeScript. Erlang already has a dual nature: - the sequential part, which strives to be a pure and mostly side-effect free functional language - the concurrent part, i.e. send, receive, process preemption, message delivery semantics, etc, which is inherently stateful due to interactions between stateful processes Gradual typing fits this model well, because it provides soundness to the sequential part of the language, while leaves the message passing parts which _no one knows how to_ type dynamically typed. BTW, I've spent a while to
Read the rest
integrate Gradualizer with Vim - https://github.com/neomake/neomake/pull/2115
In Erlang/OTP 21's new logger

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.