
blackcat@pro-ns.net wrote:
In The Yesod Book, I see the following code:
defaultLayout contents = do PageContent title headTags bodyTags <- widgetToPageContent $ do addCassius ...
How does this work? Is bodyTags drawn from widgetToPageContent and then used as the third argument to PageContent?
This is just a regular pattern match, just like any of these: x <- someComp (x, y) <- someTupleComp Just x <- someMaybeComp [x, y, z] <- someListComp x : y : _ <- someListComp PageContent title headTags bodyTags <- somePageContentComp or: someFunc (PageContent title headTags bodyTags) = ... someFunc (Just x) = ... What may confuse you is that PageContent is used in prefix notation without any parentheses, whereas the usual constructors used in pattern matching are written in infix or special syntax notation. Greets, Ertugrul -- nightmare = unsafePerformIO (getWrongWife >>= sex) http://ertes.de/