type-spine-0.1: A spine-view on types




type family Spine t Source

data TypeName x Source

TypeName represents an occurrence of totally unapplied type name.

data KS t Source

data KTSS t Source

data KTTSSS t Source

data KTSTSS t Source

kNameG :: Kind -> Q NameSource

kNameG k returns the globally unique name (i.e. TH's NameG) of the declared wrapper for types of kind k.

kTypeG :: Kind -> Q TypeSource

kTypeG = conT <=< kNameG.

spineType :: Name -> Q [Dec]Source

spineType n generates the Spine instance for the type named n.