overlapping-instances

    10熱度

    1回答

    我目前正在處理一些我沒有寫的Haskell代碼,但是我已經做了修改。我的變化後,我運行程序並得到以下錯誤消息: Prelude.!!: index too large 到!!的調用是不是在我的代碼,所以重構它帶走更多的工作比我想做的事,如果我能避免它。 我想什麼是做這樣的事情: class PrintList a where (!!) :: [a] -> Int -> a ins

    2熱度

    2回答

    給定類X和Y,創建對方類實例的最習慣方法是什麼?例如 - instance (X a) => Y a where ... instance (Y a) => X a where ... 我想避免擴展。此外,我知道這可能會導致一些令人討厭的無限遞歸,所以我打開一個完全不同的方法來完成相同的事情,並保持相對乾燥。下面給出了一些背景爲我有確切的問題 - data Dealer = Dealer H

    1熱度

    1回答

    給定以下代碼,從go類型中刪除forall a r將失敗,並顯示「重疊實例用於可鍵入(D r)」。我想知道爲什麼? {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE ExistentialQuantification #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE ScopedTypeVar

    8熱度

    1回答

    我正在嘗試show某種類型的Tagged s b(Data.Tagged)模塊,該模塊也從accelerate庫導入。不幸的是,加速庫定義了顯示實例 instance Kit acc => Show (acc aenv a) where in Data.Array.Accelerate.Pretty.hs。仔細閱讀,我沒有辦法避免導入這個實例,它明顯與Data.Tagged Show實例重疊。

    0熱度

    2回答

    我寫了一大段很大程度上依賴於繼承和組合的代碼。現在我遇到了一個問題,即我的層次結構類需要共享變量以在彼此之間共享,但這會導致合成類也被共享,這意味着這些類的單獨實例將共享不想要的值他們去。我顯然吮吸用詞語解釋,所以我寫了一些代碼。 class First(object): def __init__(self): self.subvar1 = 0 self.subv

    0熱度

    1回答

    我一直在嘗試用這種簡單的實現HLists和功能hasInt返回True如果Int是名單中的一員: {-# LANGUAGE FlexibleInstances #-} data HNil = HNil deriving (Show, Read) data HCons a b = HCons a b deriving (Show, Read) class HasInt

    2熱度

    3回答

    我正在使用Weka爲醫學問題開發分類器。這個數據集有一個類不平衡的情況,我想知道是否也存在類重疊的問題。每個記錄有30個屬性,我怎麼能發現使用Weka功能是否存在類重疊?

    0熱度

    2回答

    如果我可以將Monad s當作Num(當然適用),我有一些代碼會更乾淨。輕鬆做足: {-# LANGUAGE FlexibleInstances #-} import Control.Monad (liftM, liftM2) import Data.Char (digitToInt) instance (Monad m, Num a) => Num (m a) where (

    1熱度

    2回答

    模塊A出口模塊B和C 模塊B出口實例X 模塊C出口實例ý X和Y是一個普通類型的類的實例。 實例X和Y的類型完全相同,即完全重疊。 當我單獨使用B或C時,一切正常。當我導入它們(這裏是A)進行一些比較測試(或基準測試)時,我在C語言中發現重疊的實例錯誤,說X和Y都匹配。 這令我感到困惑,因爲從C到X的唯一路徑是:C -> A -> B。這是應該如何?另外,有沒有辦法解決這個問題?對於骯髒的黑客行爲

    0熱度

    1回答

    我有一個類型類: class Wrapper w where open :: w -> Map String Int close :: Map String Int -> w 它看起來並不非常有用,我卻用它強烈(不只是一個type代名詞)的Map String Int S語義不同品種區別: newtype FlapMap = Flap (Map String Int) n