generated at
GHC.TypeLits
Nat kindKnownNat型クラスを中心としたmodule


usecases
行列計算 ref
ServantのStatus Codeの定義に使われているref





someNatVal :: Integer -> Maybe SomeNat
hs
-- GHC.TypeNats data SomeNat = forall n. KnownNat n => SomeNat (Proxy n) -- GHC.TypeLits someNatVal :: Integer -> Maybe N.SomeNat someNatVal n | n >= 0 = Just (N.someNatVal (fromInteger n)) | otherwise = Nothing
KnownNat型クラスのinstanceを実行時に作る
つまり、入力された自然数のデータを安全に型レベル自然数に変換できる




参考
良すぎる



この辺から読む

若干関係ないかもしれないが
Kowainikmembrainというpackageの解説