anchor.diff:  
     callFunc(String method, [List args]) => module.callMethod('_$method', args);
   
  -  Pointer heapStrings(List<String> l) {
  -    if (l == null) {
  -      throw new ArgumentError.notNull('l');
  -    }
  -    if (l.isEmpty) {
  -      throw new ArgumentError.value(l, 'l', 'empty');
  -    }
  -
  -    var ptr = malloc(l.length * SIZEOF_PTR);
  -    for (var i = 0; i < l.length; i++) {
  -      var p = heapString(l[i]);
  +  Pointer heapStrings(List<String> list) {
  +    if (list == null) {
  +      throw new ArgumentError.notNull('list');
  +    }
  +    if (list.isEmpty) {
  +      throw new ArgumentError.value(list, 'list', 'empty');
  +    }
  +
  +    var ptr = malloc(list.length * SIZEOF_PTR);
  +    for (var i = 0; i < list.length; i++) {
  +      var p = heapString(list[i]);
         var addr = ptr.addr + (i * SIZEOF_PTR);
         module.callMethod('setValue', [addr, p.addr, '*']);
       }
  
positive.code:     return ptr;
    }
  
    Pointer heapInt(int i) {
      var ptr = malloc(SIZEOF_INT);
      if (i != null) {
        module.callMethod('setValue', [ptr.addr, i, 'i32']);
  
negative.code:     if (n == null || n <= 0) {
        throw new ArgumentError.value(n, 'n', 'non positive');
      }
      Int32List list = module.callMethod('getInt32Array', [ptr.addr, n]);
      list = new Int32List.fromList(list);
      if (free) {
        this.free(ptr);
      }
      return list;
    }
  
    Pointer heapString(String s) {
  