Some quick notes about using macros and quotations. This should really be merged with [ http://nemerle.org/macros.html macros' documentation page ], but it will wait, because our parsetree structure is going to be changed soon and this will also impact quotations (simplyfiy them) a lot. For best reference of how to write quotations, take a look at algorithm used to translate them in [ http://nemerle.org/svn/nemerle/ncc/macros.n the sources ]. This code is quite self explaining (at least if you just need to know how to write quotations). So first, why can't I write {{{ <[ | Some (x) => x ]> }}} Unfortunately {{ Some (x) => x }} is a match case, not an expression and standard quotation is used by default for expressions. To make a quoted match case, you must simply add {{ case: }} target to the quotation. So it would finally look like {{{ <[ case: | Some (x) => x ]> }}} Unfortunately parsetree is not yet unified enough to look very consistent and {{ try }} statement use different syntax for quotations. You write {{{ <[ try $body catch { $exn : $exn_ty => $handler } ]> }}} This quotation allows only one handler in catch, but you can nest others in body of try block.