كيف يمكنني تشغيل امتداد لغة التحميل الزائد؟
-
26-09-2019 - |
سؤال
لقد قمت بتمكين سلاسل محملة ، لكن لا يمكنني حملهم على العمل:
$ cat overloadedstrings.hs
{-# LANGUAGE OverloadedStrings #-}
import qualified Data.ByteString as B
import qualified Data.ByteString.Lazy as BL
lazy :: BL.ByteString
lazy = "I'm a lazy ByteString"
strict :: B.ByteString
strict = "I'm a strict ByteString"
$ ghci
GHCi, version 6.12.1: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude> :l overloadedstrings.hs
[1 of 1] Compiling Main ( overloadedstrings.hs, interpreted )
overloadedstrings.hs:7:7:
No instance for (Data.String.IsString BL.ByteString)
arising from the literal `"I'm a lazy ByteString"'
at overloadedstrings.hs:7:7-29
Possible fix:
add an instance declaration for
(Data.String.IsString BL.ByteString)
In the expression: "I'm a lazy ByteString"
In the definition of `lazy': lazy = "I'm a lazy ByteString"
overloadedstrings.hs:10:9:
No instance for (Data.String.IsString B.ByteString)
arising from the literal `"I'm a strict ByteString"'
at overloadedstrings.hs:10:9-33
Possible fix:
add an instance declaration for (Data.String.IsString B.ByteString)
In the expression: "I'm a strict ByteString"
In the definition of `strict': strict = "I'm a strict ByteString"
Failed, modules loaded: none.
أين أستورد IsString
حالات ل ByteString
من عند؟ ألا يحدث هذا تلقائيًا؟ ما الخطأ الذي افعله؟
المحلول
تحتاج إلى استيراد .Char8
وحدات ، مثل Data.ByteString.Char8
و Data.ByteString.Lazy.Char8
لا تنتمي إلى StackOverflow