add vm docs, add Boolean type, add skeleton macro engine