code: def choose(self, prompt, items, default=None):
          
          if default is not None and (default >= len(items) or default < 0):
              raise IndexError
          prompt = prompt if prompt is not None else "Choose from following:"
          self.show(prompt + '\n')
          self.show("\n".join(number(items)))  # show the items
          prompt = "Enter number of chosen item"
          prompt += " [{0}]: ".format(default) if default is not None else ': '
          return items[self.input(
              curry(filter_int, default=default, start=0, stop=len(items)),
              prompt
          )]
docs: Prompts the user to choose one item from a list.
  
          The default, if provided, is an index; the item of that index will
          be returned.