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