summaryrefslogtreecommitdiff
path: root/dhall/src/core/thunk.rs
diff options
context:
space:
mode:
authorNadrieril2019-05-07 16:15:22 +0200
committerNadrieril2019-05-07 16:18:13 +0200
commit5b4887f7ea3262bd0e280be4bb889fd67f708edf (patch)
treebdf267a7283f34c77626244c33b2be1a77446f5b /dhall/src/core/thunk.rs
parent726c281cdd3824fcfdde34fe8d01f95416f7808c (diff)
Document Value and Thunk
Diffstat (limited to 'dhall/src/core/thunk.rs')
-rw-r--r--dhall/src/core/thunk.rs8
1 files changed, 5 insertions, 3 deletions
diff --git a/dhall/src/core/thunk.rs b/dhall/src/core/thunk.rs
index 69c4347..2b013bb 100644
--- a/dhall/src/core/thunk.rs
+++ b/dhall/src/core/thunk.rs
@@ -29,12 +29,14 @@ enum ThunkInternal {
Value(Marker, Value),
}
-/// Stores a possibly unevaluated value. Uses RefCell to ensure that
-/// the value gets normalized at most once.
+/// Stores a possibly unevaluated value. Gets (partially) normalized on-demand,
+/// sharing computation automatically.
+/// Uses a RefCell to share computation.
#[derive(Debug, Clone)]
pub struct Thunk(Rc<RefCell<ThunkInternal>>);
-/// A thunk in type position.
+/// A thunk in type position. Can optionally store a Type from the typechecking phase to preserve
+/// type information through the normalization phase.
#[derive(Debug, Clone)]
pub(crate) enum TypeThunk {
Thunk(Thunk),