galaxy-sixth-sensey - Haskell(GHC)のSymbol/Natカインドの型を値に落とす方法
2017/11/07
Haskell(GHC)のSymbol/Natカインドの型を値に落とす方法

 Haskell(GHC)では以下のように、文字列を型として埋め込むことができます。

{-# LANGUAGE DataKinds #-}

type Str = "sugar"

main :: IO ()
main = return ()

 こうすれば値"sugar" :: Stringを取得できます。

{-# LANGUAGE DataKinds #-}

import Data.Proxy (Proxy(..))
import GHC.TypeLits (Symbol, symbolVal)

type Str = "sugar"

main :: IO ()
main = putStrLn $ symbolVal (Proxy :: Proxy Str)
-- {output}
-- sugar

Nat

 Nat(自然数カインド)も同じことができるよ。

{-# LANGUAGE DataKinds #-}

import Data.Proxy (Proxy(..))
import GHC.TypeLits (Nat, natVal)

main :: IO ()
main = print $ natVal (Proxy :: Proxy 10)
-- {output}
-- 10

参考


この記事はこちらから修正リクエストを送ることができます。
Haskell(GHC)のSymbol/Natカインドの型を値に落とす方法 - github
ゴミ箱ボタンの左にある、鉛筆ボタンを押してね!