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