anchor.diff:        layout.map((abi, layout) => MapEntry(abi, layout.size));
   
     @override
  +  int? getSizeFor(Abi abi) => layout[abi]?.size;
  +
  +  @override
     Map<Abi, int?> get alignment =>
         layout.map((abi, layout) => MapEntry(abi, layout.alignment));
  +
  +  @override
  +  int? getAlignmentFor(Abi abi) => layout[abi]?.alignment;
   
     @override
     Constant generateConstant(FfiTransformer transformer) =>
  
positive.code:     int? unionSize = 1;
      int? unionAlignment = 1;
      for (int i = 0; i < types.length; i++) {
        final int? size = types[i].size[abi];
        int? alignment = types[i].alignment[abi];
        unionSize = max(unionSize, size);
        unionAlignment = max(unionAlignment, alignment);
      }
  
negative.code:   /// The size in bytes per [Abi].
    Map<Abi, int?> get size;
  
    /// The size in bytes for [Abi].
    int? getSizeFor(Abi abi);
  
    /// The alignment inside structs in bytes per [Abi].
    ///
    /// This is not the alignment on stack, this is only calculated in the VM.
    Map<Abi, int?> get alignment;
  
    /// The alignment inside structs in bytes for [Abi].
    ///
    /// This is not the alignment on stack, this is only calculated in the VM.
    int? getAlignmentFor(Abi abi);
  
    /// Generates a Constant representing the type which is consumed by the VM.
    ///
  