something like ``` extensible [d| data A = A |] {- other stuff, plus: printExtendA :: String -- ^ datatype name -> [Name] -- ^ extra tyvars -> ExtA -> Dec -} ``` ``` >>> ppr $ printExtendA "A" [] $ defaultExtA {typeA = Just [[t|Int|]]} data A = A Int ```