pub fn parse_partial_expr<'ast, Id, S>(
    arena: ArenaRef<'_, 'ast, Id>,
    symbols: &mut dyn IdentEnv<Ident = Id>,
    type_cache: &TypeCache<Id, ArcType<Id>>,
    input: &S
) -> Result<SpannedExpr<'ast, Id>, (Option<SpannedExpr<'ast, Id>>, ParseErrors)>where
    Id: Clone + AsRef<str> + Debug,
    S: ?Sized + ParserSource,