У меня есть следующее:
import Data.List
data Content
= TaggedContent (String, [String]) String
| Null
processContent :: Content -> IO Content
processContent c@(TaggedContent (id, attrs) text) =
case stripPrefix "include=" a of
Just f -> return . TaggedContent (id, attrs) =<< readFile f
Nothing -> return c
where a = head(attrs)
processContent x = return x
transformContent :: Content -> Content
transformContent x = x -- (details of implementation not necessary)
Я хотел бы составить transformContent
с помощью конструктора TaggedContent
; то есть что-то вроде
Just f -> return . transformContent TaggedContent (id, attrs) =<< readFile f
Однако это не будет компилироваться.
Я новичок в Haskell и пытаюсь понять правильный синтаксис.