С:Скотти сообщение типа не позволит эффекты
mailHandler = do
name <- param "name"
email <- param "email"
renderSendMail $ forwardMail name email
main = scotty 3000 $ post "/mail" mailHandler
Я получаю следующее сообщение об ошибке типа:
Couldn't match type `IO'
with `Web.Scotty.Internal.Types.ActionT T.Text IO'
Expected type: Web.Scotty.Internal.Types.ActionT T.Text IO()
Actual type: IO()
In a stmt of a 'do' block: renderSendMail $ forwardMail name email
In the expression:
do { name <- param "name";
email <- param "email";
renderSendMail $ forwardMail name email }
In an equation for `mailHandler':
mailHandler
= do { name <- param "name";
email <- param "email";
renderSendMail $ forwardMail name email }
Failed to install server-0.0.1
cabal: Error: some packages failed to install:
server-0.0.1 failed during the building phase. The exception was:
ExitFailure 1
Проведя несколько часов, я до сих пор не понимаю, как решить эту проблему. Если я использую функцию, внутреннюю для Скотти, не проблема, но если я хочу обработать что-либо извне, я получаю ошибку выше. Как я могу пройти мимо этого Web.Scotty.Internal.Types.ActionT T.Text IO()
нормально, вот интересный – Fresheyeball
Если вы не прочь, пожалуйста, скажите мне имя пакета cabal для установки, чтобы получить 'Control.Monad.IO.Class'. И даже лучше, если вы сможете объяснить всю концепцию трансформатора монады – Fresheyeball
, я установил «трансформаторы», и все ожило, но все равно понравится объяснение концепции. – Fresheyeball