| | 17 | === Other issues === |
| | 18 | |
| | 19 | * Some names of base are hardcoded in GHC and hence cannot be moved to a different package name without changes in GHC. This includes: |
| | 20 | * The `Num` constraint on polymorphic literals. Can be avoided by writing `fromIntegral 0` instead of `0`. |
| | 21 | * Similar, the `[x..y]` syntax generates a `base:GHC.Enum.Enum` constraint, `RebindableSyntax` does not help (GHC bug?) |
| | 22 | * `StablePtr`, as used in `GHC.Stable` |
| | 23 | * `Typeable`, `Show` when used in `deriving`. Can probably be avoided by hand-writing instances. `Read` can probably move completely out. |
| | 24 | * `error` has its type wired in GHC when in package base; This is used in a hack in [https://github.com/ghc/packages-base/blob/master/GHC/Err.lhs-boot GHC/Err.hs-boot]. Work-around: Import `GHC.Types` in `GHC/Err.lhs-boot` |
| | 25 | * The `Monad` constraint on do-notation expects the definition to live in base. `RebindableSyntax` helps, but requires to define a local `ifThenElse` function. |
| | 26 | |