I solve this by not doing open of modules unless they have specifically been designed for opening (e.g. Infix operator modules for let* or >>= or something like that) or I specifically want an include to override my definitions (e.g. when I backport stdlib functions and want these to be replaced by the Stdlib versions if available).
1 Like