fn make_general_expr(func: ExprType, exprs: Vec<Expr>) -> Option<Expr>
General expressions do not fall under unary / binary op, so they are constructed differently.