class TinySet extends AbstractProxySet<E> {

    public static <T> Set<T> add(Set<T> input, T e)
    {
        if (input.isEmpty())
        {
            return Collections.<T>singleton(e);
        }
        else if (input.size() == 1)
        {
            Set<T> result = New.set(2);
            result.addAll(input);
            if (result.add(e))
            {
                return result;
            }
            return input;
        }
        else
        {
            input.add(e);
            return input;
        }
    }

}