A multi-stage R5RS Scheme interpreter written in MetaOCaml