28

我是 Haskell 的新手,所以这可能是一个微不足道的问题。我看到一条错误消息,上面写着

Couldn't match expected type 'Data.Text.Lazy.Internal.Text'
with actual type 'Data.Text.Internal.Text'

我认为问题在于实际类型是Data.Text.Text并且它需要惰性文本。如何将一个转换为另一个?

编辑:

这是给出此错误的简化代码。

{-# LANGUAGE OverloadedStrings #-}
import Data.Text.Lazy.Encoding import Network.Mail.Mime import Yesod
data FormData = FormData { dataField :: Textarea } deriving Show
part d = Part { partType = "text/plain; charset=utf-8" , partEncoding = None , partFilename = Nothing , partContent = encodeUtf8 $ unTextarea $ dataField d , partHeaders = [] }
main = return ()
基本上我有一个带有 textarea 输入元素的 yesod 表单,我想通过电子邮件发送 textarea 的内容。

4

1 回答 1

30

toStrictfromData.Text.Lazy会做你要求的(将惰性转换为严格)。

于 2011-09-21T21:11:02.317 回答