write flat_map and cons_each. read the very short, beautiful, point-free implementation in Prelude. ahh