Does literate programming in haskell (.lhs) support the idea in Knuth's WEB of using aliases for blocks of code? In other words doing something like

main = do
  <part 1>
  <part 2>

<part 1> === putStrLn "foo"
<part 2> === putStrLn "bar"

(except I don't know what the actual syntax is)

-Dennis