class TypedSet {

    public static TypedSet createEqualityTypedSet(
            Type elementType,
            BlockPositionEqual elementEqualOperator,
            BlockPositionHashCode elementHashCodeOperator,
            int expectedSize,
            String functionName)
    {
        return createEqualityTypedSet(
                elementType,
                elementEqualOperator,
                elementHashCodeOperator,
                elementType.createBlockBuilder(null, expectedSize),
                expectedSize,
                functionName,
                false);
    }

    public  TypedSet(
            Type elementType,
            BlockPositionEqual elementEqualOperator,
            BlockPositionIsDistinctFrom elementDistinctFromOperator,
            BlockPositionHashCode elementHashCodeOperator,
            BlockBuilder blockBuilder,
            int expectedSize,
            String functionName,
            boolean unboundedMemory);

}