Initial implementation of map_if.

And accompanying helper update_list. Closes #4