Skip to content

Instantly share code, notes, and snippets.

@ShalokShalom
Last active September 11, 2023 20:15
Show Gist options
  • Save ShalokShalom/af804bee1822a22f98ad6b25ce73492c to your computer and use it in GitHub Desktop.
Save ShalokShalom/af804bee1822a22f98ad6b25ce73492c to your computer and use it in GitHub Desktop.
Global type inference
Global type inference
Crystal - Not a HindleyMilner. Specification: https://github.com/crystal-lang/crystal/issues/2390
Elm ¹
Erg
F#
F* ²
Gleam
Gluon
Grain
Haskell ¹² (An exception to the conventional annotation seems to be the IHP framework)
Haxe
Julia
LazyML
Mercury
MLScript
OCaml ²
Purescript ¹ (Applies also for alternative backends, like Puerl)
Python with Pytype ³
Reason ²
Rescript ²
Roc
SML ²
TypeScript ³
It is generally recommended, to use type annotations on functions who are used by outside projects.
Amulett *abandoned
AliceML *abandoned
Alpaca *abandoned
Caramel *abandoned
Hamler *abandoned
¹ Type annotations are traditionally applied despite the global type inference.
² Type classes, higher order modules and other implementations of undecicable Functors do (effectively) need type annotations.
³ Unsound type system
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment