Diffstat (limited to 'src/walk/walkers/core/value.rs')
-rw-r--r--src/walk/walkers/core/value.rs19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/walk/walkers/core/value.rs b/src/walk/walkers/core/value.rs
index 69fb912..69aa04c 100644
--- a/src/walk/walkers/core/value.rs
+++ b/src/walk/walkers/core/value.rs
@@ -1,7 +1,8 @@
use effectful::{
bound::Dynamic,
- effective::Effective,
- environment::{DynBind, Environment, NativeForm},
+ effective::{Effective, Canonical},
+ environment::{Environment},
+ DynBind,
SendSync,
};
@@ -53,10 +54,10 @@ where
type Output = ();
#[inline(always)]
- fn walk<'b: 'c, 'c>(
+ fn walk<'b: 'c, 'd: 'c, 'c>(
self,
- visitor: DynVisitor<'b, 'ctx, E>,
- ) -> NativeForm<'c, Result<Self::Output, Self::Error>, E> {
+ visitor: DynVisitor<'b, 'd, 'ctx, E>,
+ ) -> Canonical<'c, Result<Self::Output, Self::Error>, E> {
// Attempt to visit using the value protocol.
visit_value::<OwnedStatic<T>, E>(visitor, OwnedStatic(self.0 .0))
.map((), |_, _| Ok(()))
@@ -89,13 +90,13 @@ where
type Output = Dynamic<&'ctx T>;
#[inline(always)]
- fn walk<'b: 'c, 'c>(
+ fn walk<'b: 'c, 'd: 'c, 'c>(
self,
- visitor: DynVisitor<'b, 'ctx, E>,
- ) -> NativeForm<'c, Result<Self::Output, Self::Error>, E> {
+ visitor: DynVisitor<'b, 'd, 'ctx, E>,
+ ) -> Canonical<'c, Result<Self::Output, Self::Error>, E> {
// Attempt to visit using the value protocol.
E::value((self, visitor))
- .update((), |_, (this, visitor)| {
+ .update_map((), |_, (this, visitor)| {
visit_value::<_, E>(visitor.cast(), BorrowedStatic(this.0 .0))
.map((), |_, x| VisitResult::unit_skipped(x))
.cast()