pub fn read_forms(path: &Path) -> Result<Vec<Spanned>, String>
Convenience wrapper: given an already-resolved path, read + parse it and return the spanned forms, ready for the caller to eval_program.
eval_program