removed GHC.Generic because it\'s not supported in base < 4.6