Conversation
Pretty much. map over lists is worse with side effects bc no ordering guarantee. But Opt.map *could* validly run f twice… Interesting. When might it do that? You don't get to know. All you know is:
x.map(id) == x
x.map(f).map(g) == x.map({f(g($0))}) Fair, thanks for clarifying!