generated at
ServantのVerb型の定義の意味を理解する

GHC拡張初心者にはちょうどよい塩梅?mrsekut



Verbs.hsから、 Verb 型だけ定義できる最小を抜き出すとこうなる
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拡張
謎の型
GHC.TypeLitsのNat型
謎の型クラス


そもそもVerbはどういう使われ方をするのか



最低限の解説
詳細は各リンクへ

Nat

DataKinds

PolyKinds



Servant内では、
Servant.Docs.Internal GToSample 型クラスや、
Servant.API.Generic GServantProduct 型クラスに
Genericのinstanceにする定義がある