Diffstat (limited to 'src/protocol/visitor/value.rs')
-rw-r--r--src/protocol/visitor/value.rs13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/protocol/visitor/value.rs b/src/protocol/visitor/value.rs
index 5ab8887..dd2def1 100644
--- a/src/protocol/visitor/value.rs
+++ b/src/protocol/visitor/value.rs
@@ -3,11 +3,7 @@
//! In some sense, this is the most basic protocol.
use effectful::{
- bound::Dynamic,
- effective::Effective,
- environment::{DynBind, Environment, NativeForm},
- higher_ranked::{for_lt, Rank1},
- SendSync,
+ bound::Dynamic, effective::{Canonical, Effective}, environment::Environment, higher_ranked::{for_lt, Rank1}, DynBind, SendSync
};
use crate::{
@@ -34,7 +30,7 @@ pub trait Value<'ctx, T: ?Sized + type_name::Static, E: Environment>: DynBind<E>
fn visit<'this: 'value, 'value: 'e, 'e>(
&'this mut self,
value: type_name::Lowered<'value, 'ctx, T>,
- ) -> NativeForm<'e, VisitResult<Dynamic<type_name::Lowered<'value, 'ctx, T>>>, E>
+ ) -> Canonical<'e, VisitResult<Dynamic<type_name::Lowered<'value, 'ctx, T>>>, E>
where
type_name::Lowered<'value, 'ctx, T>: Sized,
Dynamic<type_name::Lowered<'value, 'ctx, T>>: DynBind<E>,
@@ -86,13 +82,14 @@ pub struct ValueKnown<'a, T: ?Sized> {
pub fn visit_value<
'ctx: 'visitor,
'visitor: 'e,
+ 'lt: 'e,
'e,
T: type_name::WithLt<'e, 'ctx>,
E: Environment,
>(
- visitor: DynVisitor<'visitor, 'ctx, E>,
+ visitor: DynVisitor<'visitor, 'lt, 'ctx, E>,
value: T,
-) -> NativeForm<'e, VisitResult<Dynamic<T>>, E>
+) -> Canonical<'e, VisitResult<Dynamic<T>>, E>
where
Dynamic<T>: DynBind<E>,
type_name::Raised<'e, 'ctx, T>: type_name::Static,