Algebraic Datatypes in Typed Racket with macros (lexi-lambda.github.io)