http://okmij.org/ftp/tagless-final/course/TypeCheck.hs http://okmij.org/ftp/tagless-final/course/Typ.hs