add language pragma - DeriveFunctor