 :: Parser (AST' Text)
term =  try if_expr
    <|> try return_expr
    <|> try lam_expr
    <|> try def_expr
    <|> try match_expr
    <|> try data_expr
    <|> try integrate_expr
    <|> try summate_expr
    <|> try product_expr
    <|> try expect_expr
    <|> try observe_expr
    <|> try array_expr
    <|> try plate_expr
    <|> try chain_expr
    <|> try let_expr
    <|> try bind_expr
    <|> try call_expr
    <|> try array_literal
    <|> try floating
    <|> try inf_
    <|> try unit_
    <|> try empty_
    <|> try int
    <|> try var
    <|> try pairs
    <|> parens expr
    <?> "an expression"

ex
term :: Parser (AST' Text)
term =  try if_expr
    <|> try return_expr
    <|> try lam_expr
    <|> try def_expr
    <|> try match_expr
    <|> try data_expr
    <|> try integrate_expr
    <|> try summate_expr
    <|> try product_expr
    <|> try expect_expr
    <|> try observe_expr
    <|> try array_expr
    <|> try plate_expr
    <|> try chain_expr
    <|> try let_expr
    <|> try bind_expr
    <|> try call_expr
    <|> try array_literal
    <|> try floating
    <|> try inf_
    <|> try unit_
    <|> try empty_
    <|> try int
    <|> try var
    <|> try pairs
    <|> parens expr
    <?> "an expression"
term =  try if_expr
    <|> try return_expr
    <|> try lam_expr
    <|> try def_expr
    <|> try match_expr
    <|> try data_expr
    <|> try integrate_expr
    <|> try summate_expr
    <|> try product_expr
    <|> try expect_expr
    <|> try observe_expr
    <|> try array_expr
    <|> try plate_expr
    <|> try chain_expr
    <|> try let_expr
    <|> try bind_expr
    <|> try call_expr
    <|> try array_literal
    <|> try floating
    <|> try inf_
    <|> try unit_
    <|> try empty_
    <|> try int
    <|> try var
    <|> try pairs
    <|> parens expr
    <?> "an expression"