Type driven generic aeson instance customisation
