[Haskell-cafe] tree with labeled edges as a monad