well known haskell languagedef.. nothing new