pub fn parse_partial_root_expr<Id, S>(
    symbols: &mut dyn IdentEnv<Ident = Id>,
    type_cache: &TypeCache<Id, ArcType<Id>>,
    input: &S
) -> Result<RootExpr<Id>, (Option<RootExpr<Id>>, ParseErrors)>
where Id: Clone + AsRef<str> + Debug, S: ?Sized + ParserSource,