[Haskell-beginners] Implement semantic editor combinators