Hackett is an attempt to implement a Haskell-like language with support for Racket’s macro system, built using the techniques described in the paper Type Systems as Macros. It is currently extremely work-in-progress. Here are some of the features that Hackett supports right now: Bidirectional type inference Algebraic datatypes (ADTs) Pattern matching Exhaustiveness checking Typeclasses (including