You probably don’t need the SNat
itself. You should be able to access all its functionality through KnownNat
. For example, to pattern match you use
natVal :: forall n proxy. KnownNat n => proxy n -> Integer
https://hackage.haskell.org/package/base-4.18.0.0/docs/GHC-TypeLits.html#v:natVal