Reduce boilerplate with GeneralizedNewtypeDeriving