Safe HaskellSafe

TypeFamilies

Description

Doc for: module TypeFamilies

Synopsis
  • data X
  • data Y
  • data Z
  • class Test a
  • type family Foo a :: k
  • data family Bat (a :: k) :: *
  • class Assoc a where
  • type family Bar b where ...
  • type family (a :: k) <> (b :: k) :: k
  • class (a :: k) >< (b :: k)

Documentation

data X #

Doc for: data X

Constructors

X

Doc for: X

XX

Doc for: XX

XXX

Doc for: XXX

Instances

Instances details
XX >< XXX #
Instance details

Defined in TypeFamilies

Assoc X #

Doc for: instance Assoc X

Instance details

Defined in TypeFamilies

Associated Types

data AssocD X :: Type #

type AssocT X :: Type #

Test X #

Doc for: instance Test X

Instance details

Defined in TypeFamilies

type Foo X #

External instance

Instance details

Defined in TypeFamilies

type Foo X = Y
type XXX <> XX #
Instance details

Defined in TypeFamilies

type XXX <> XX = X
data AssocD X #
Instance details

Defined in TypeFamilies

data AssocD X = AssocX
type AssocT X #
Instance details

Defined in TypeFamilies

type AssocT X = (Foo X :: Type)
data Bat X #

Doc for: data instance Bat X

Instance details

Defined in TypeFamilies

data Bat X
type Foo X #

Doc for: type instance Foo X = Y

Instance details

Defined in TypeFamilies

type Foo X = Y
type X <> (a :: Type) #
Instance details

Defined in TypeFamilies

type X <> (a :: Type) = X

data Y #

Doc for: data Y

Instances

Instances details
Assoc Y #

Doc for: instance Assoc Y

Instance details

Defined in TypeFamilies

Associated Types

data AssocD Y :: Type #

type AssocT Y :: Type #

Test Y #

Doc for: instance Test Y

Instance details

Defined in TypeFamilies

data Bar Y #
Instance details

Defined in TypeFamilies

data Bar Y
data AssocD Y #
Instance details

Defined in TypeFamilies

data AssocD Y = AssocY
type AssocT Y #
Instance details

Defined in TypeFamilies

type AssocT Y = Bat Y
data Bat Y #

Doc for: data instance Bat Y

Instance details

Defined in TypeFamilies

data Bat Y = BatY Y
type Foo Y #

Doc for: type instance Foo Y = X

Instance details

Defined in TypeFamilies

type Foo Y = X
type Y <> (a :: Type) #
Instance details

Defined in TypeFamilies

type Y <> (a :: Type) = a

data Z #

Doc for: data Z

Constructors

ZA
ZB

Instances

Instances details
data Bat (z :: Z) #

Doc for: data instance Bat Z

Instance details

Defined in TypeFamilies

data Bat (z :: Z) where

class Test a #

Doc for: class Test a

Instances

Instances details
Test Y #

Doc for: instance Test Y

Instance details

Defined in TypeFamilies

Test X #

Doc for: instance Test X

Instance details

Defined in TypeFamilies

type family Foo a :: k #

Doc for: type family Foo a

Instances

Instances details
type Foo Y #

Doc for: type instance Foo Y = X

Instance details

Defined in TypeFamilies

type Foo Y = X
type Foo X #

Doc for: type instance Foo X = Y

Instance details

Defined in TypeFamilies

type Foo X = Y

data family Bat (a :: k) :: * #

Doc for: data family Bat a

Instances

Instances details
data Bat (z :: Z) #

Doc for: data instance Bat Z

Instance details

Defined in TypeFamilies

data Bat (z :: Z) where
data Bat Y #

Doc for: data instance Bat Y

Instance details

Defined in TypeFamilies

data Bat Y = BatY Y
data Bat X #

Doc for: data instance Bat X

Instance details

Defined in TypeFamilies

data Bat X

class Assoc a #

Doc for: class Assoc a

Associated Types

data AssocD a :: * #

Doc for: data AssocD a

type AssocT a :: * #

Doc for: type AssocT a

Instances

Instances details
Assoc Y #

Doc for: instance Assoc Y

Instance details

Defined in TypeFamilies

Associated Types

data AssocD Y :: Type #

type AssocT Y :: Type #

Assoc X #

Doc for: instance Assoc X

Instance details

Defined in TypeFamilies

Associated Types

data AssocD X :: Type #

type AssocT X :: Type #

type family Bar b where ... #

Doc for: type family Bar b

Equations

Bar X = X
Bar y = Y

type family (a :: k) <> (b :: k) :: k #

Instances

Instances details
type XXX <> XX #
Instance details

Defined in TypeFamilies

type XXX <> XX = X
type Y <> (a :: Type) #
Instance details

Defined in TypeFamilies

type Y <> (a :: Type) = a
type X <> (a :: Type) #
Instance details

Defined in TypeFamilies

type X <> (a :: Type) = X

class (a :: k) >< (b :: k) #

Instances

Instances details
XX >< XXX #
Instance details

Defined in TypeFamilies