src/som/primitives/arithmetic/AdditionPrim.java
@Specialization
  @TruffleBoundary
  public final SType doTypeUnion(final SType left, final SType right) {
    Set<SSymbol> signatures = new HashSet<>();
    signatures.addAll(Arrays.asList(left.getSignatures()));
    signatures.retainAll(Arrays.asList(right.getSignatures()));
    return new SType.InterfaceType(signatures.toArray(new SSymbol[signatures.size()]));
  }
/**
   * + is used for type union representing the methods that both types have.
   */
+ is used for type union representing the methods that both types have.
+ is used for type union representing the methods that both types have .
@Specialization
  @TruffleBoundary
  public final SType doTypeUnion(final SType left, final SType right) {
    Set<SSymbol> signatures = new HashSet<>();
    signatures.addAll(Arrays.asList(left.getSignatures()));
    signatures.retainAll(Arrays.asList(right.getSignatures()));
    return new SType.InterfaceType(signatures.toArray(new SSymbol[signatures.size()]));
  }
@ Specialization @ TruffleBoundary public final SType doTypeUnion ( final SType left , final SType right ) { Set < SSymbol > signatures = new HashSet < > ( ) ; signatures . addAll ( Arrays . asList ( left . getSignatures ( ) ) ) ; signatures . retainAll ( Arrays . asList ( right . getSignatures ( ) ) ) ; return new SType . InterfaceType ( signatures . toArray ( new SSymbol [ signatures . size ( ) ] ) ) ; }
+ is used for type union representing the methods that both types have.
+ is used for type union representing the methods that both types have .