Diffstat (limited to 'src/transform.rs')
| -rw-r--r-- | src/transform.rs | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/transform.rs b/src/transform.rs index bd358bf..65b9887 100644 --- a/src/transform.rs +++ b/src/transform.rs @@ -2,9 +2,9 @@ use core::marker::PhantomData; use crate::{ build::Builder, - effect::{Effect, Effective, ErasedEffective}, + effect::{all_ctx, merge_ctx, Effect, Effective, EffectiveExt, ErasedEffective}, hkt::Marker, - Walk, Walker, WalkerTypes, + BuilderTypes, Walk, Walker, WalkerTypes, }; #[inline(always)] @@ -14,7 +14,11 @@ pub fn transform<'a, 'ctx: 'a, B: Builder<'ctx, E> + 'a, W: Walker<'ctx, E> + 'a walker: W, ) -> ErasedEffective<'a, (Result<B::Value, B::Error>, Result<W::Output, W::Error>), E> { B::from_seed(seed) - .as_ctx(|builder| walker.walk(builder.as_visitor()).into_erased()) + .as_ctx( + all_ctx, + |builder, _| walker.walk(builder.as_visitor()).into_erased(), + merge_ctx, + ) .then(|(builder, walker_result)| { builder .build() |