1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
#[macro_export] macro_rules! bind { ($io: expr, $f: expr) => { move || { let t = $io()?; $f(t)() } }; } #[macro_export] macro_rules! lift { ($pure: expr) => { move |t| move || $pure(t) }; }