Я понимаю по таким вопросам, как , и , , что использование PRAGMA OverloadedStrings
означает, что я должен иметь возможность использовать текст в качестве строкового типа.
Однако, когда я проверяю мои типы данных с текстом, я получаю следующую ошибку:
$ stack ghci
Prelude> :l myfile.hs
Ok, one module loaded.
*Main> Rec "asd" "m"
<interactive>:46:5: error:
• Couldn't match expected type ‘Text’ with actual type ‘[Char]’
• In the first argument of ‘Rec’, namely ‘"asd"’
In the expression: Rec "asd" "m"
In an equation for ‘it’: it = Rec "asd" "m"
<interactive>:46:11: error:
• Couldn't match expected type ‘Text’ with actual type ‘[Char]’
• In the second argument of ‘Rec’, namely ‘"m"’
In the expression: Rec "asd" "m"
In an equation for ‘it’: it = Rec "asd" "m"
Мой код выглядит следующим образом:
{-# LANGUAGE DeriveGeneric, OverloadedStrings, DefaultSignatures, TypeOperators, FlexibleContexts, RecordWildCards, FlexibleInstances, ExtendedDefaultRules #-}
import qualified Data.Map as Map
import qualified Data.Set as Set
-- import qualified Data.Text as T
import Data.Text (Text)
import GHC.Generics
data Rec = Rec {
recCategory :: Text,
recId :: Text
} deriving Generic
Что ячто-то не так?
Я вижу в этот вопрос предложение:
РЕДАКТИРОВАТЬ Вы также можете добавить по умолчанию (текст) в верхней части вашего модулячтобы он использовал текст вместо строки по умолчанию.
Но мне не ясно, какой будет синтаксис, позволяющий использовать это значение по умолчанию