Abstract away all the Haskell override stuff