summaryrefslogtreecommitdiff
path: root/lambda-calcul/rust/src/ast.rs
diff options
context:
space:
mode:
authorArnaud Bailly <arnaud@pankzsoft.com>2025-10-09 16:06:24 +0200
committerArnaud Bailly <arnaud@pankzsoft.com>2025-10-09 16:06:24 +0200
commit68d05695856709ee1c251e496fb5b79a17134dbc (patch)
tree8fb87c3575c1b30ea501540c410d38e58f09d588 /lambda-calcul/rust/src/ast.rs
parentecb4c59eb89a01ee2dea6495f6287cd0709ce403 (diff)
downloadlambda-nantes-68d05695856709ee1c251e496fb5b79a17134dbc.tar.gz
feat: introduce arrow types
Diffstat (limited to 'lambda-calcul/rust/src/ast.rs')
-rw-r--r--lambda-calcul/rust/src/ast.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/lambda-calcul/rust/src/ast.rs b/lambda-calcul/rust/src/ast.rs
index 18aaaa7..bdfb963 100644
--- a/lambda-calcul/rust/src/ast.rs
+++ b/lambda-calcul/rust/src/ast.rs
@@ -9,6 +9,7 @@ use std::fmt::{self, Display};
pub enum Type {
Num,
Bool,
+ Arr(Box<Type>, Box<Type>),
}
impl Display for Type {
@@ -75,7 +76,7 @@ impl Display for Value {
Value::Lam(var, body) => write!(f, "(lam {} {})", var, body),
Value::Def(var, value) => write!(f, "(def {} {})", var, value),
Value::Let(var, value, body) => write!(f, "(let ({} {}) {})", var, value, body),
- Value::TLam(var,typ, body) => write!(f, "(lam ({} {}) {})", var, typ, body),
+ Value::TLam(var,typ, body) => write!(f, "(tlam ({} {}) {})", var, typ, body),
Value::Type(typ) => write!(f, ":{}", typ),
}
}