Use Choice.List.partition at appropriate places
Replace some uses of find by Choice.List.tryFind