code: def _to_variable_type(x, records):
      
      var_mapping = {"string": "String", "File": "File", "null": "String",
                     "long": "Float", "double": "Float", "int": "Int"}
      if isinstance(x, dict):
          if x["type"] == "record":
              struct_name, records = _record_to_struct(x, records)
              return struct_name, records
          else:
              assert x["type"] == "array", x
              cur_type, records = _to_variable_type(x["items"], records)
              return "Array[%s]" % cur_type, records
      elif isinstance(x, (list, tuple)):
          vars = [v for v in x if v != "null"]
          return var_mapping[vars[0]], records
      else:
          return var_mapping[x], records
docs: Convert CWL variables to WDL variables, handling nested arrays.