ocaml
macro_rules! frame { (($($param:ident),*) $code:block) => { ... }; }
frame! can be used to create new local variables that play nicely with the garbage collector
frame!