static S repeat(char c, int n) {
  n = Math.max(n, 0);
  char[] chars = new char[n];
  for (int i = 0; i < n; i++)
    chars[i] = c;
  return new String(chars);
}

static <A> L<A> repeat(A a, int n) {
  n = Math.max(n, 0);
  L<A> l = new ArrayList(n);
  for (int i = 0; i < n; i++)
    l.add(a);
  ret l;
}

static <A> L<A> repeat(int n, A a) {
  ret repeat(a, n);
}