Rubyちゃんこんにちわ

子育てエンジニアが綴る

GHCiでPreludeの演算子をhidingで隠す - Haskell

プログラミングHaskellの演習問題を解くにあたり、||演算子を定義するわけですが、Preludeにて||は定義されているため、 実行時にあいまいエラーがでます(以下)。

1
2
3
4
<interactive>:1:6:
    Ambiguous occurrence `||'
    It could refer to either `Main.||', defined at 4.hs:36:6
                          or `Prelude.||', imported from Prelude
対策としては.hsファイルの先頭に、以下を追加してPreludeで定義されている   演算子を隠します。
1
import Prelude hiding ((||))

&&演算子も同時に隠す場合は、タプルのように扱うことで解消できるようです。

1
import Prelude hiding ((||), (&&))

余談ですが、最初はimport Prelude hiding (||)でエラーとなってしまいハマりました。セクションとして扱う必要があるようです。

参考サイト: 2006-06-20 - 結城浩のHaskell日記 - haskell