
Eyal Lotem wrote:
B) Code that has open unqualified imports may break when new symbols are added to the libraries its importing. This means that libraries cannot even be considered backwards compatible if they retain semantics, but add new exported names.
This is not as uncommon as might sound and has happened a few times to me now, one example being hackage package yogurt failing to build on 6.10: Ambiguous occurrence `empty' It could refer to either `Data.IntMap.empty', imported from Data.IntMap at Network/Yogurt/Mud.hs:43:28-32 or `Text.Regex.Posix.empty', imported from Text.Regex.Posix at Network/Yogurt/Mud.hs:45:0-22 It's taught me to use qualified imports a lot more often. Martijn.