fn stack_exprs(left: Option<Expr>, right: Expr) -> Expr {
    match left {
        Some(function) => Expr {
            span: function.span.join(&right.span),
            kind: ExprKind::Application {
                function: Box::new(function),
                argument: Box::new(right),
            },
        },

        None => right,
    }
}
/// Stacks two expression, with the first possibly missing. If the two
/// expressions are present, then an application node is created.
Stacks two expression, with the first possibly missing. If the two
expressions are present, then an application node is created.
Stacks two expression with the first possibly missing . If the two expressions are present then an application node is created .
fn stack_exprs(left: Option<Expr>, right: Expr) -> Expr {
    match left {
        Some(function) => Expr {
            span: function.span.join(&right.span),
            kind: ExprKind::Application {
                function: Box::new(function),
                argument: Box::new(right),
            },
        },
        None => right,
    }
}
fn stack_exprs ( left : Option < Expr > , right : Expr ) -> Expr { match left { Some ( function ) => Expr { span : function . span . join ( & right . span ) , kind : ExprKind :: Application { function : Box :: new ( function ) , argument : Box :: new ( right ) , } , } , None => right , } }
Stacks two expression, with the first possibly missing.
Stacks two expression with the first possibly missing .
left
Option<Expr>
right
Expr
left
Option<Expr>
right
Expr