Data.GI.Base.Overloading

Type level inheritance

type family ParentTypes a :: [*]

type family IsDescendantOf (parent :: *) (descendant :: *) :: Constraint where ...

type family UnknownAncestorError (a :: *) (t :: *) where ...

Looking up attributes in parent types

type family AttributeList a :: [(Symbol, *)]

class HasAttributeList a

type family ResolveAttribute (s :: Symbol) (o :: *) :: * where ...

type family HasAttribute (attr :: Symbol) (o :: *) where ...

class HasAttr attr o

Looking up signals in parent types

type family SignalList a :: [(Symbol, *)]

type family ResolveSignal (s :: Symbol) (o :: *) :: * where ...

type family HasSignal (s :: Symbol) (o :: *) where ...

Looking up methods in parent types

class MethodInfo i o s

data MethodProxy a

type family MethodResolutionFailed (method :: Symbol) (o :: *) where ...

Overloaded labels

class IsLabelProxy x a