docs: def convex_hull(features):
      """Returns points on convex hull of an array of points in CCW order."""
      points = sorted([s.point() for s in features])
      l = reduce(_keep_left, points, [])
      u = reduce(_keep_left, reversed(points), [])
      return l.extend(u[i] for i in xrange(1, len(u) - 1)) or l