failed attempt at generic key instances
add TemplateHaskell to default-extensions