Die OverloadedLists Sprache Pragma in GHC 7.8 ist sehr attraktiv, so dass ich beschloss, es zu versuchen:OverloadedLists Erweiterung funktioniert nicht
{-# LANGUAGE OverloadedLists #-}
import Data.Set (Set)
import qualified Data.Set as Set
mySet :: Set Int
mySet = [1,2,3]
Und der Compiler gibt mir:
No instance for (GHC.Exts.IsList (Set Int))
arising from an overloaded list
In the expression: [1, 2, 3]
In an equation for ‘mySet’: mySet = [1, 2, 3]
No instance for (Num (GHC.Exts.Item (Set Int)))
arising from the literal ‘1’
In the expression: 1
In the expression: [1, 2, 3]
In an equation for ‘mySet’: mySet = [1, 2, 3]
Failed, modules loaded: none.
Auch das Beispiel aus der Versionshinweise funktionieren nicht:
> ['0' .. '9'] :: Set Char
<interactive>:5:1:
Couldn't match type ‘GHC.Exts.Item (Set Char)’ with ‘Char’
Expected type: [Char] -> Set Char
Actual type: [GHC.Exts.Item (Set Char)] -> Set Char
In the expression: ['0' .. '9'] :: Set Char
In an equation for ‘it’: it = ['0' .. '9'] :: Set Char
Weiß jemand, was hier vor sich geht?
Es heißt im Fehler: 'Keine Instanz für (GHC.Exts.IsList (Set Int))'. 'Data.Set' definiert keine Instanz für' IsList'. Sie können die Instanz selbst ganz einfach schreiben, hier ist die Klasse: http://hackage.haskell.org/package/base-4.7.0.0/docs/GHC-Exts.html#g:14 – user2407038