[
  {
    "Primitive": {
      "name": "GHC.Natural.NatS#",
      "workInfo" : "Never",
      "primType": "Constructor",
      "comment": "Needed to make the evaluator handle this constructor strictly"
    }
  },
  {
    "Primitive": {
      "name": "GHC.Natural.naturalToInteger",
      "workInfo": "Never",
      "primType": "Function",
      "warning": "GHC.Natural.naturalToInteger: No blackbox available without size inference for Natural and Integer"
    }
  },
  {
    "BlackBox": {
      "name": "GHC.Natural.underflowError",
      "workInfo" : "Constant",
      "kind": "Expression",
      "type": "underflowError :: a",
      "template": "~ERRORO"
    }
  },
  {
    "BlackBox": {
      "name": "GHC.Natural.plusNatural",
      "kind": "Expression",
      "type": "plusNatural :: Natural -> Natural -> Natural",
      "template": "~ARG[0] + ~ARG[1]",
      "warning": "GHC.Natural.plusNatural: Naturals are dynamically sized in simulation, but fixed-length after synthesization. Use carefully."
    }
  },
  {
    "BlackBox": {
      "name": "GHC.Natural.minusNatural",
      "kind": "Expression",
      "type": "minusNatural :: Natural -> Natural -> Natural",
      "template": "~ARG[0] - ~ARG[1]",
      "warning": "GHC.Natural.minusNatural: Naturals are dynamically sized in simulation, but fixed-length after synthesization. Use carefully."
    }
  },
  {
    "Primitive": {
      "name": "GHC.Natural.gcdNatural",
      "workInfo" : "Never",
      "primType": "Function"
    }
  }
]