Haskell implementations of type systems as described in Benjamin Pierce's Types and Programming Languages.