Haskell Prelude with hiding, how to undo?

7.2k Views Asked by At

In one file I need to use the regular prelude (++) operator and I also wish to implement my own behaviour for (++). I have used import Prelude hiding (++) at the top of my file, defined my own (++) operator and now further below I wish to refer to the regular Prelude's (++). How do I achieve this?

2

There are 2 best solutions below

2
On BEST ANSWER

Write

import qualified Prelude

in addition to

import Prelude hiding ((++))

at the beginning of the code, and write Prelude.++ where you need ++ in Prelude.

3
On

As Tsuyoshi Ito explained, you can qualify the operator by its module name. However, since by defining your own version of (++) you most likely want to increase the readabilty of your program, qualifying an operator with its module name later on seems to be a weird measure.

Just look at this: "abc" Prelude.++ "def" Now that's ugly.

Why not simply create a new operator, like <++> or an infix function like `append`?