diff options
Diffstat (limited to 'dhall/src')
-rw-r--r-- | dhall/src/core/value.rs | 2 | ||||
-rw-r--r-- | dhall/src/phase/normalize.rs | 4 |
2 files changed, 4 insertions, 2 deletions
diff --git a/dhall/src/core/value.rs b/dhall/src/core/value.rs index 354c360..28fcb3e 100644 --- a/dhall/src/core/value.rs +++ b/dhall/src/core/value.rs @@ -40,7 +40,7 @@ pub(crate) struct AlphaLabel(Label); #[derive(Debug, Clone, PartialEq, Eq)] pub(crate) enum Value { /// Closures - Lam(AlphaLabel, Thunk, Thunk), + Lam(AlphaLabel, TypeThunk, Thunk), Pi(AlphaLabel, TypeThunk, TypeThunk), // Invariant: the evaluation must not be able to progress further. AppliedBuiltin(Builtin, Vec<Thunk>), diff --git a/dhall/src/phase/normalize.rs b/dhall/src/phase/normalize.rs index a48c299..5dfcfb6 100644 --- a/dhall/src/phase/normalize.rs +++ b/dhall/src/phase/normalize.rs @@ -339,7 +339,9 @@ pub(crate) fn normalize_one_layer(expr: ExprF<Thunk, Label, X>) -> Value { ExprF::Embed(_) => unreachable!(), ExprF::Var(_) => unreachable!(), ExprF::Annot(x, _) => RetThunk(x), - ExprF::Lam(x, t, e) => RetValue(Lam(x.into(), t, e)), + ExprF::Lam(x, t, e) => { + RetValue(Lam(x.into(), TypeThunk::from_thunk(t), e)) + } ExprF::Pi(x, t, e) => RetValue(Pi( x.into(), TypeThunk::from_thunk(t), |