Change the semantics of list_choice a little. Choosing from an empty list is still a 'choice', and returns an empty result list, rather than NULL - to avoid special-case checking.