Как конфертировать из ленивого текста в не ленивый текст? - PullRequest
25 голосов
/ 22 сентября 2011

Я новичок в Хаскеле, так что это может быть тривиальной проблемой.Я вижу сообщение об ошибке

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

и думаю, что проблема в том, что фактический тип - Data.Text.Text, и он ожидает ленивый текст.Как я могу преобразовать одно в другое?

РЕДАКТИРОВАТЬ:

вот упрощенный код, который дает эту ошибку. {-# LANGUAGE OverloadedStrings #-}<br> import Data.Text.Lazy.Encoding import Network.Mail.Mime import Yesod<br> data FormData = FormData { dataField :: Textarea } deriving Show<br> part d = Part { partType = "text/plain; charset=utf-8" , partEncoding = None , partFilename = Nothing , partContent = encodeUtf8 $ unTextarea $ dataField d , partHeaders = [] }<br> main = return () В основном у меня есть форма yesod с элементом ввода textarea, и я хочу отправить содержимое textarea по электронной почте.

1 Ответ

21 голосов
/ 22 сентября 2011

toStrict из Data.Text.Lazy будет делать то, что вы просите (преобразовать ленивый в строгий).

...