trait VecMonad { fn bind(&self, f: F) where F: FnMut(A) -> Vec; } impl VecMonad for Vec { fn bind(&self, mut f: F) where F: FnMut(A) -> Vec { let mut r = panic!(); for elt in self { r = r + f(*elt); } //~^ ERROR E0277 } } fn main() { ["hi"].bind(|x| [x] ); //~^ ERROR no method named `bind` found }