| ▲ | eben-vranken 3 hours ago | |||||||
Elixir's gradual type system cannot change the asymptotic complexity of your programs. The design explicitly rules out mechanism that causes slowdowns in other gradual type systems (runtime casts at static/dynamic boundaries) Most gradual type systems insert coercions when values cross the types/untyped boundary (checking every element of a list, wrapping values in typed proxies, etc) but Elixir's team published a "strong arrows" result specifically to achieve soundness without those runtime checks. The bytecode the compiler emits is semantically identical to untyped code. | ||||||||
| ▲ | dnautics 3 hours ago | parent [-] | |||||||
i think the design can push people into writing unnecessary matches/guards just to trigger the typechecker. that said, I'm a fan | ||||||||
| ||||||||