, Монадические вычисления могут использовать чистые вычисления, но не наоборот.

аюсь конвертироватьIO [String]&nbsp;в[String]&nbsp;с участием<-&nbsp;связывание; Тем не менее, мне нужно использоватьdo&nbsp;блок, чтобы сделать это подwhere&nbsp;заявление, но Haskell постоянно жалуется на отступы. Вот код:

decompEventBlocks :: IO [String] -> IO [[String]]
decompEventBlocks words
 | words' /= [] = block : (decompEventBlocks . drop $ (length block) words')
 | otherwise = []
  where 
   do
    words' <- words
    let block = (takeWhile (/="END") words')

В чем причина этого? И как мы можем использоватьdo&nbsp;блок вwhere&nbsp;заявление ? Более того, есть ли шанс, что у нас могут быть какие-то заявления перед охранниками?