{
  "float64": {
    "float64": "float64",
    "float32": "float64",
    "int32": "float64",
    "int16": "float64",
    "int8": "float64",
    "uint32": "float64",
    "uint16": "float64",
    "uint8": "float64",
    "uint8c": "float64",
    "complex64": "complex128",
    "complex128": "complex128",
    "bool": -1,
    "generic": "generic"
  },
  "float32": {
    "float64": "float64",
    "float32": "float32",
    "int32": "float64",
    "int16": "float32",
    "int8": "float32",
    "uint32": "float64",
    "uint16": "float32",
    "uint8": "float32",
    "uint8c": "float32",
    "complex64": "complex64",
    "complex128": "complex128",
    "bool": -1,
    "generic": "generic"
  },
  "int32": {
    "float64": "float64",
    "float32": "float64",
    "int32": "int32",
    "int16": "int32",
    "int8": "int32",
    "uint32": "float64",
    "uint16": "int32",
    "uint8": "int32",
    "uint8c": "int32",
    "complex64": "complex128",
    "complex128": "complex128",
    "bool": -1,
    "generic": "generic"
  },
  "int16": {
    "float64": "float64",
    "float32": "float32",
    "int32": "int32",
    "int16": "int16",
    "int8": "int16",
    "uint32": "float64",
    "uint16": "int32",
    "uint8": "int16",
    "uint8c": "int16",
    "complex64": "complex64",
    "complex128": "complex128",
    "bool": -1,
    "generic": "generic"
  },
  "int8": {
    "float64": "float64",
    "float32": "float32",
    "int32": "int32",
    "int16": "int16",
    "int8": "int8",
    "uint32": "float64",
    "uint16": "int32",
    "uint8": "int16",
    "uint8c": "int16",
    "complex64": "complex64",
    "complex128": "complex128",
    "bool": -1,
    "generic": "generic"
  },
  "uint32": {
    "float64": "float64",
    "float32": "float64",
    "int32": "float64",
    "int16": "float64",
    "int8": "float64",
    "uint32": "uint32",
    "uint16": "uint32",
    "uint8": "uint32",
    "uint8c": "uint32",
    "complex64": "complex128",
    "complex128": "complex128",
    "bool": -1,
    "generic": "generic"
  },
  "uint16": {
    "float64": "float64",
    "float32": "float32",
    "int32": "int32",
    "int16": "int32",
    "int8": "int32",
    "uint32": "uint32",
    "uint16": "uint16",
    "uint8": "uint16",
    "uint8c": "uint16",
    "complex64": "complex64",
    "complex128": "complex128",
    "bool": -1,
    "generic": "generic"
  },
  "uint8": {
    "float64": "float64",
    "float32": "float32",
    "int32": "int32",
    "int16": "int16",
    "int8": "int16",
    "uint32": "uint32",
    "uint16": "uint16",
    "uint8": "uint8",
    "uint8c": "uint8",
    "complex64": "complex64",
    "complex128": "complex128",
    "bool": -1,
    "generic": "generic"
  },
  "uint8c": {
    "float64": "float64",
    "float32": "float32",
    "int32": "int32",
    "int16": "int16",
    "int8": "int16",
    "uint32": "uint32",
    "uint16": "uint16",
    "uint8": "uint8",
    "uint8c": "uint8",
    "complex64": "complex64",
    "complex128": "complex128",
    "bool": -1,
    "generic": "generic"
  },
  "complex128": {
    "float64": "complex128",
    "float32": "complex128",
    "int32": "complex128",
    "int16": "complex128",
    "int8": "complex128",
    "uint32": "complex128",
    "uint16": "complex128",
    "uint8": "complex128",
    "uint8c": "complex128",
    "complex64": "complex128",
    "complex128": "complex128",
    "bool": -1,
    "generic": "generic"
  },
  "complex64": {
    "float64": "complex128",
    "float32": "complex64",
    "int32": "complex128",
    "int16": "complex64",
    "int8": "complex64",
    "uint32": "complex128",
    "uint16": "complex64",
    "uint8": "complex64",
    "uint8c": "complex64",
    "complex64": "complex64",
    "complex128": "complex128",
    "bool": -1,
    "generic": "generic"
  },
    "bool": {
    "float64": -1,
    "float32": -1,
    "int32": -1,
    "int16": -1,
    "int8": -1,
    "uint32": -1,
    "uint16": -1,
    "uint8": -1,
    "uint8c": -1,
    "complex64": -1,
    "complex128": -1,
    "bool": "bool",
    "generic": "generic"
  },
  "generic": {
    "float64": "generic",
    "float32": "generic",
    "int32": "generic",
    "int16": "generic",
    "int8": "generic",
    "uint32": "generic",
    "uint16": "generic",
    "uint8": "generic",
    "uint8c": "generic",
    "complex64": "generic",
    "complex128": "generic",
    "bool": "generic",
    "generic": "generic"
  }
}
