docs: def from_iterable(cls, iterable: Iterable) -> 'List':
          """Create list from iterable."""
  
          iterator = iter(iterable)
  
          def recurse() -> List:
              try:
                  value = next(iterator)
              except StopIteration:
  
                  return List.empty()
              return List.unit(value).append(recurse())
          return List.empty().append(recurse())