pub trait FooMap { fn map B>(&self, f: F) -> B; } impl FooMap for bool { fn map B>(&self, f: F) -> B { f() } } fn main() { let a = true; a.map(|| false); }