| So, I set
| import qualified Prelude
| import Prelude hiding (Ord(..), Bounded(..), Num(..), Integral(..),
| Fractional(..), subtract, fromIntegral,
| even, odd, gcd, lcm, (^), (^^)
| )
| ...,
| and the user modules have to copy this "import" part.
| Looks like it helps.
If you defined MyPrelude thus:
module MyPrelude( module Prelude, Ord(..), Bounded(..) ..etc )
import qualified Prelude
import Prelude hiding (Ord(..), Bounded(..), Num(..), Integral(..),
Fractional(..), subtract, fromIntegral,
even, odd, gcd, lcm, (^), (^^)
)
then the client modules would simply have to say
import Prelude ()
import MyPrelude
and you'd be done. MyPrelude can simply re-export Prelude things.
This doesn't address your fromInteger problem. I'm thinking
more actively about the import {-# SYNTAX #-} idea. Don't
hold your breath, because I'm away this month. But if it will
make a significant difference to you I'm sure we can do something
in the next month or two.
Simon