ServantのVerb型の定義の意味を理解する
GHC拡張初心者にはちょうどよい塩梅?mrsekut.icon
code:hs
{-# LANGUAGE DataKinds #-} {-# LANGUAGE PolyKinds #-} module Servant.API.Verbs where
import Data.Typeable (Typeable)
import GHC.Generics (Generic)
import GHC.TypeLits (Nat)
data Verb (method :: k1) (statusCode :: Nat) (contentTypes :: *) (a :: *) deriving (Typeable, Generic)
使ってる謎のもの
謎のGHC拡張
謎の型
謎の型クラス
そもそもVerbはどういう使われ方をするのか
最低限の解説
詳細は各リンクへ
Nat
DataKinds
PolyKinds
Servant内では、
Servant.Docs.InternalのGToSample型クラスや、
Servant.API.GenericのGServantProduct型クラスに
Genericのinstanceにする定義がある