djaouen

djaouen

A gradual type system for Elixir (ScienceDirect) - has anyone seen this paper on static typing for Elixir?

Has anyone seen this paper on static typing for Elixir? It kind of goes over my head, but I’m interested in what the community thinks about it.

Most Liked

erszcz

erszcz

The original Gradual Typing paper by Siek and Taha actually proposes that gradual typing systems inject dynamic checks on downcasts from any. I think that’s what TypedRacket does.

The Erlang/Elixir implementations I know (e.g. Gradient / Gradualizer), however, don’t do it. I think it’s because of two reasons:

  1. The implementations are independent of the compiler(s), so they have no way to inject code.
  2. The type system is still advantageous if we only use static types (that is some bugs do get detected at check time, not at runtime) and it doesn’t degrade below the guarantees offered by the runtime anyway (for as long as the supervision tree is there no critical failures can bring the system down).

IMO that’s a nice blend of dynamism and ahead of time warnings.

al2o3cr

al2o3cr

One thing that jumps out (besides the unusual code formatting) is that the resulting type system considers code like bad/1:

to be typed correctly, due to how it handles “downcasting” from any.

Where Next?

Popular in Other Resources Top

Blond11516
Does anyone have resources (articles, talks, etc.) they can share about “modern fullstack apps”? By “modern fullstack” I mean dynamic, s...
New
pepicrft
Hi there :waving_hand: I’m the co-founder of Tuist a toolchain to help Apple developers be more productive and ship better apps. We star...
New
zkessin
I have released a free email course on how to build releases in Elixir with Distillery, The course is text based. You can subscribe here...
New
hectorperez
Hi, I found that a great way to learn is: play with existing livebook notebooks create new notebooks — completely new or just changing ...
New
Timtonix
A tous les français de la communauté Elixir, J’ai découvert hier ce livre traitant d’élixir Elixir - Un langage de programmation 100 %...
New
kpanic
Hi everyone, At the company where I work (Taxfix), we prepared an internal Elixir course for our folks. We decided to share it with eve...
New
zkessin
I have a new free email course on how to best use types in Erlang and Elixir you can sign up here https://elixirtraining.org/types_cours...
New
NickGnd
Hey all :wave: I took me a bit more than 1 year but I finally managed to finish “Programming Machine Learning - From Coding to Deep Lear...
New
sergio
https://www.udemy.com/course/interviewing-tips-and-tricks-for-remote-engineers/ I always wanted to create my own course and share things...
New
crockwave
I updated my fork of the live_view_hooks demo repo to include fullCalendar integration, including JSON API, event creation and storage in...
New

Other popular topics Top

sorentwo
Hello! tl;dr Announcing Oban, an Ecto based job processing library with a focus on reliability and historical observability. After spen...
985 42920 311
New
Harrisonl
We have an ECS cluster with 4 services, where each task joins a single cluster, via discovery ECS discovery service. Currently when I de...
New
Darmani72
If I have a post route which an argument: post /my_post_route/:my_param1, MyController.my_post_handler How would get the post params ...
New
danschultzer
None of the current solutions worked well for me, so I went ahead and built a user management system from scratch. This project took far...
548 29377 241
New
jerry
Good day to you all. I have been struggling to get a query involving like and ilike to work. Can anyone assist me on this, please? pro...
New
nobody
Hi! In PHP: $_SERVER[‘SERVER_ADDR’] - in Elixir? Searched the docs for ip address and the web, no good results. Thanks!
New
shijith.k
I am trying to start a new phoenix project with elixir 1.9, but mix phx.new does not work. It says that ** (Mix) The task "phx.new" could...
New
joaquinalcerro
Hi there, I am working with Ecto-Postgresql and I need to call all of the records from a specific table but the table has 40,000 records...
New
Brian
What is the proper way to load a module from a file in to IEX? In the python world, doing something like this pretty standard: from ....
New
WestKeys
Currently suffering from paralysis by [HTTP client] analysis. This is rather unusual in Elixirland as there tends to be consensus on the ...
New

We're in Beta

About us Mission Statement