add dist to gitignore
switch cabal file to use default-extensions instead of the deprecated extensions, move GeneralizedNewtypeDeriving to cabal file