Integral和Fractional实例的重复实例声明错误

时间:2017-04-29 15:27:11

标签: haskell

我有一些类型C带有一个函数,如果有的话,它应该给我下一个更大的数字。

这意味着对于整数类型它只是+1,对于表示整数的超集的类型,它应该返回Nothing,因为没有明确的下一个数字

{-# LANGUAGE FlexibleInstances, UndecidableInstances #-} 
module Main where

class C a where
    cIncr :: a -> Maybe a

instance Integral a => C a where
    cIncr x = Just $ x + 1

instance Fractional a => C a where
    cIncr _ = Nothing

这给了我以下错误:

Duplicate instance declarations:
  instance Integral a => C a
    -- Defined at src/File.hs:7
  instance Fractional a => C a
    -- Defined at src/File.hs:10

我不明白为什么会收到此错误 - 为什么/他们在哪里定义相同的实例?

0 个答案:

没有答案