diff options
author | Nadrieril | 2019-05-07 16:15:22 +0200 |
---|---|---|
committer | Nadrieril | 2019-05-07 16:18:13 +0200 |
commit | 5b4887f7ea3262bd0e280be4bb889fd67f708edf (patch) | |
tree | bdf267a7283f34c77626244c33b2be1a77446f5b /dhall/src/core/thunk.rs | |
parent | 726c281cdd3824fcfdde34fe8d01f95416f7808c (diff) |
Document Value and Thunk
Diffstat (limited to '')
-rw-r--r-- | dhall/src/core/thunk.rs | 8 |
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), |