[
  {
    "Primitive": {
      "name": "GHC.Num.Natural.NS",
      "workInfo" : "Never",
      "primType": "Constructor",
      "comment": "Needed to make the evaluator handle this constructor strictly"
    }
  },
  {
    "Primitive": {
      "name": "GHC.Num.Natural.NB",
      "workInfo" : "Never",
      "primType": "Constructor",
      "comment": "Needed to make the evaluator handle this constructor strictly"
    }
  },
  {
    "BlackBox": {
      "name": "GHC.Num.Natural.naturalAdd",
      "kind": "Expression",
      "type": "naturalSub :: Natural -> Natural -> Natural",
      "template": "~ARG[0] + ~ARG[1]",
      "warning": "GHC.Num.Natural.naturalAdd: Naturals are dynamically sized in simulation, but fixed-length after synthesis. Use carefully."
    }
  },
  {
    "Primitive": {
      "name": "GHC.Num.Natural.naturalSub",
      "workInfo" : "Never",
      "primType": "Function"
    }
  },
  {
    "BlackBox": {
      "name": "GHC.Num.Natural.naturalSubUnsafe",
      "kind": "Expression",
      "type": "naturalSubUnsafe :: Natural -> Natural -> Natural",
      "template": "~ARG[0] - ~ARG[1]",
      "warning": "GHC.Num.Natural.naturalSubUnsafe: Naturals are dynamically sized in simulation, but fixed-length after synthesis. Use carefully."
    }
  },
  {
    "BlackBox": {
      "name": "GHC.Num.Natural.naturalSubThrow",
      "kind": "Expression",
      "type": "naturalSubThrow :: Natural -> Natural -> Natural",
      "template": "~ARG[0] - ~ARG[1]",
      "warning": "GHC.Num.Natural.naturalSubThrow: Naturals are dynamically sized in simulation, but fixed-length after synthesis. Use carefully."
    }
  },
  {
    "BlackBox": {
      "name": "GHC.Num.Natural.naturalMul",
      "kind": "Expression",
      "type": "naturalMul :: Natural -> Natural -> Natural",
      "template": "~ARG[0] * ~ARG[1]",
      "warning": "GHC.Num.Natural.naturalMul: Naturals are dynamically sized in simulation, but fixed-length after synthesis. Use carefully."
    }
  },
  {
    "BlackBox": {
      "name": "GHC.Num.Natural.naturalQuot",
      "kind": "Expression",
      "type": "naturalQuot :: Natural -> Natural -> Natural",
      "template": "~ARG[0] / ~ARG[1]",
      "warning": "GHC.Num.Natural.naturalQuot: Naturals are dynamically sized in simulation, but fixed-length after synthesis. Use carefully."
    }
  },
  {
    "Primitive": {
      "name": "GHC.Num.Natural.naturalGcd",
      "workInfo" : "Never",
      "primType": "Function"
    }
  },
  {
    "Primitive": {
      "name": "GHC.Num.Natural.naturalLcm",
      "workInfo" : "Never",
      "primType": "Function"
    }
  }
]