Main.hs Sf�XU �� �XU {-# LANGUAGE StrictData, DerivingVia, OverloadedRecordDot #-} {- (compiled with GHC 9.4.2) -} {- HEADS UP this is an example implementation of a non-trivial type system using bidirectional type checking. it is... - naive: a real implementation would use more advanced techniques such as NbE, elaboration to core, debruijn representation, and various optimizations - minimal: ther
![A minimalistic example of bidirectional type checking for system F](https://cdn-ak-scissors.b.st-hatena.com/image/square/1ef26f6cb4349557952890dbe3e567f7f98dc151/height=288;version=1;width=512/https%3A%2F%2Fgithub.githubassets.com%2Fassets%2Fgist-og-image-54fd7dc0713e.png)