- BlackBox:
    name: Clash.Class.Exp.expIndex#
    kind: Declaration
    type: 'expIndex# :: KnownNat
      m => Index m -> SNat n -> Index (m^n)'
    template: assign ~RESULT = ~DEVNULL[~ARG[0]]$signed(~ARG[1] ** ~LIT[2]);
    warning: Exponentiation is only supported on relatively small constructs (< 32
      bits). Ideally, Clash should have constant folded your expression. See https://github.com/clash-lang/clash-compiler/issues/593.
- BlackBox:
    name: Clash.Class.Exp.expSigned#
    kind: Declaration
    type: 'expSigned# :: KnownNat
      m => Signed m -> SNat n -> Signed (m*n)'
    template: assign ~RESULT = ~DEVNULL[~ARG[0]]$signed(~ARG[1] ** ~LIT[2]);
    warning: Exponentiation is only supported on relatively small constructs (< 32
      bits). Ideally, Clash should have constant folded your expression. See https://github.com/clash-lang/clash-compiler/issues/593.
- BlackBox:
    name: Clash.Class.Exp.expUnsigned#
    kind: Declaration
    type: 'expUnsigned# ::
      KnownNat m => Unsigned m -> SNat n -> Unsigned (m*n)'
    template: assign ~RESULT = ~DEVNULL[~ARG[0]]$unsigned(~ARG[1] ** ~LIT[2]);
    warning: Exponentiation is only supported on relatively small constructs (< 32
      bits). Ideally, Clash should have constant folded your expression. See https://github.com/clash-lang/clash-compiler/issues/593.
