summaryrefslogtreecommitdiff
path: root/dhall/src/expr.rs
diff options
context:
space:
mode:
Diffstat (limited to 'dhall/src/expr.rs')
-rw-r--r--dhall/src/expr.rs20
1 files changed, 12 insertions, 8 deletions
diff --git a/dhall/src/expr.rs b/dhall/src/expr.rs
index 5bde68f..90efd39 100644
--- a/dhall/src/expr.rs
+++ b/dhall/src/expr.rs
@@ -58,11 +58,11 @@ impl std::fmt::Display for Normalized {
mod typed {
use super::{Type, Typed};
- use crate::normalize::{Thunk, Value};
+ use crate::normalize::{DoubleVar, Thunk, Value};
use crate::typecheck::{
TypeError, TypeInternal, TypeMessage, TypecheckContext,
};
- use dhall_syntax::{Const, Label, SubExpr, V, X};
+ use dhall_syntax::{Const, SubExpr, X};
use std::borrow::Cow;
#[derive(Debug, Clone)]
@@ -94,6 +94,10 @@ mod typed {
self.to_value().normalize_to_expr()
}
+ pub(crate) fn to_expr_alpha(&self) -> SubExpr<X, X> {
+ self.to_value().normalize_to_expr_maybe_alpha(true)
+ }
+
pub(crate) fn to_thunk(&self) -> Thunk {
match self {
TypedInternal::Value(th, _) => th.clone(),
@@ -129,7 +133,7 @@ mod typed {
}
}
- pub(crate) fn shift(&self, delta: isize, var: &V<Label>) -> Self {
+ pub(crate) fn shift(&self, delta: isize, var: &DoubleVar) -> Self {
match self {
TypedInternal::Value(th, t) => TypedInternal::Value(
th.shift(delta, var),
@@ -139,7 +143,7 @@ mod typed {
}
}
- pub(crate) fn subst_shift(&self, var: &V<Label>, val: &Typed) -> Self {
+ pub(crate) fn subst_shift(&self, var: &DoubleVar, val: &Typed) -> Self {
match self {
TypedInternal::Value(th, t) => TypedInternal::Value(
th.subst_shift(var, val),
@@ -207,16 +211,16 @@ impl Normalized {
pub(crate) fn to_expr(&self) -> SubExpr<X, X> {
self.0.to_expr()
}
+ #[allow(dead_code)]
+ pub(crate) fn to_expr_alpha(&self) -> SubExpr<X, X> {
+ self.0.to_expr_alpha()
+ }
pub(crate) fn to_value(&self) -> Value {
self.0.to_value()
}
pub(crate) fn to_thunk(&self) -> Thunk {
self.0.to_thunk()
}
- #[allow(dead_code)]
- pub(crate) fn unnote(self) -> Normalized {
- Normalized(self.0)
- }
}
impl Typed {