Diffstat (limited to 'src/transform.rs')
| -rw-r--r-- | src/transform.rs | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/transform.rs b/src/transform.rs index 9f92ba2..4652b9b 100644 --- a/src/transform.rs +++ b/src/transform.rs @@ -2,7 +2,7 @@ use core::marker::PhantomData; use crate::{ build::Builder, - effect::{Adapters, Effect, ObjSafe}, + effect::{Effect, Effective, ErasedEffective}, hkt::Marker, Walk, Walker, WalkerTypes, }; @@ -12,19 +12,18 @@ use crate::{ pub fn transform<'a, 'ctx: 'a, B: Builder<'ctx, E> + 'a, W: Walker<'ctx, E> + 'a, E: Effect>( seed: B::Seed, walker: W, -) -> ObjSafe<'a, (Result<B::Value, B::Error>, Result<W::Output, W::Error>), E> { +) -> ErasedEffective<'a, (Result<B::Value, B::Error>, Result<W::Output, W::Error>), E> { B::from_seed(seed) - .as_ctx_for( + .as_ctx( #[inline(always)] - move |builder, _| (walker.walk(builder.as_visitor()), PhantomData), + move |builder| walker.walk(builder.as_visitor()).into_erased(), ) - .then(|(builder, walker_result), _| { + .then(|(builder, walker_result)| { builder .build() .map(|builder_result| (builder_result, walker_result)) - .into() }) - .into() + .into_erased() // B::from_seed(seed).map_with(walker, |builder, walker| walker.walk(builder.as_visitor())); // E::wrap(async { |