generated at
Proxy
Data.Proxy で定義されている、()に型パラメータを持たせたようなデータ型。

(hs)
ghci> import Data.Proxy ghci> :t Proxy Proxy :: Proxy t ghci> :t Proxy :: Proxy Int Proxy :: Proxy Int :: Proxy Int

DataKinds と組み合わせることで、任意の文字列や自然数を Proxy に乗せることができる。

(hs)
ghci> :set -XDataKinds ghci> :t Proxy :: Proxy 0 Proxy :: Proxy 0 :: Proxy 0 ghci> :t Proxy :: Proxy "abc" Proxy :: Proxy "abc" :: Proxy "abc"

TypeApplicationsによって必要性は薄れたが、型の情報を明示的に渡せるので型レベルプログラミングの必需品として名高い。モナドでもあるので、稀ではあるが「何もしないモナド」が必要なときにも使える。