@Override
 protected A_Type privateBlockTypeRestriction() {
   return FunctionTypeDescriptor.create(
       TupleDescriptor.from(
           ATOM.o(),
           MapTypeDescriptor.mapTypeForSizesKeyTypeValueType(
               IntegerRangeTypeDescriptor.inclusive(
                   IntegerDescriptor.zero(), IntegerDescriptor.fromInt(socketOptions.length - 1)),
               IntegerRangeTypeDescriptor.inclusive(
                   IntegerDescriptor.one(), IntegerDescriptor.fromInt(socketOptions.length - 1)),
               ANY.o())),
       TOP.o());
 }
  @Override
  public Result attempt(
      final List<AvailObject> args, final Interpreter interpreter, final boolean skipReturnCheck) {
    assert args.size() == 1;
    final A_Bundle bundle = args.get(0);

    final MessageSplitter splitter = bundle.messageSplitter();
    return interpreter.primitiveSuccess(IntegerDescriptor.fromInt(splitter.numberOfArguments()));
  }