Ambiguous Occurrence

后端 未结 2 1728
醉酒成梦
醉酒成梦 2021-02-08 06:20

I am currently learning how to write type classes. I can\'t seem to write the Ord type class with compile errors of ambiguous occurrence.

module Practice where

         


        
2条回答
  •  盖世英雄少女心
    2021-02-08 06:45

    hammar is right, it's because of clashing with standard Prelude names. But there are another solutions in addition to hiding names from Prelude.

    You can import Prelude qualified:

    module Practice where
    
    import qualified Prelude as P
    
    ...
    

    Next, you can gain access to both you and standard version of function: max will execute your version, and P.max will execute standard Prelude's.

    There is also way to completely hide all standard Prelude functions: GHC's extension NoImplicitPrelude (http://www.haskell.org/haskellwiki/No_import_of_Prelude). It can be activated writing

    {-# LANGUAGE NoImplicitPrelude #-}
    

    in the very beginning of your file

提交回复
热议问题