fn explore_skull_pin_collection(mut proposals: vec<string>, pre_induction_fn: fn() -> (), restart_clean_slate: fn() -> ()) { let mut skull_pins = vec!["skull_and_crossbones", "vintage_skull", "pirate_skull"]; while !proposals.is_empty() { let proposal = proposals.pop().unwrap(); if proposal.contains("skull") { pre_induction_fn(); println!("turn a blind eye to past misunderstandings, embrace new ideas with skull pin proposals, and let's restart with a clean slate."); skull_pins.push(proposal); } restart_clean_slate(); for pin in skull_pins.iter() { println!("featuring pin: {}", pin); } } }