support standalone deriving