Diffstat (limited to 'src/build/builders/core.rs')
-rw-r--r--src/build/builders/core.rs13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/build/builders/core.rs b/src/build/builders/core.rs
index 55c7bfb..3f8b2a5 100644
--- a/src/build/builders/core.rs
+++ b/src/build/builders/core.rs
@@ -1,6 +1,7 @@
+use effectful::{environment::{Environment, NativeForm}, is_send_sync};
+
use crate::{
any_trait,
- effect::{Effect, Effective, EffectiveExt, ErasedEffective},
protocol::{visitor::VisitResult, DynVisitor},
DynWalkerObjSafe,
};
@@ -19,6 +20,8 @@ pub mod tag_name;
#[non_exhaustive]
pub struct NoopVisitor;
+is_send_sync!(NoopVisitor);
+
impl NoopVisitor {
pub fn new() -> Self {
Self
@@ -26,14 +29,14 @@ impl NoopVisitor {
}
any_trait! {
- impl['ctx] NoopVisitor = []
+ impl['ctx][E] NoopVisitor = [] where E: Environment
}
impl NoopVisitor {
- pub fn walk_dyn<'ctx: 'e, 'walker: 'e, 'e, E: Effect>(
+ pub fn walk_dyn<'ctx: 'e, 'walker: 'e, 'e, E: Environment>(
walker: DynWalkerObjSafe<'walker, 'ctx, E>,
- ) -> ErasedEffective<'e, VisitResult, E> {
- E::ready(NoopVisitor::new()).as_ctx_map(|noop| {
+ ) -> NativeForm<'e, VisitResult, E> {
+ E::value(NoopVisitor::new()).as_ctx_map(|noop| {
walker
.walk(DynVisitor(noop))
.map(|x| x.to_continue().into())