Safe Haskell | Safe

TypeFamilies

Description

Doc for: module TypeFamilies

Synopsis

- data X
  - = X
  - | XX
  - | XXX
- data Y
- data Z
  - = ZA
  - | ZB
- class Test a
- type family Foo a :: k
- data family Bat a :: *
- class Assoc a where
  - data AssocD a :: *
  - type AssocT a :: *
- type family Bar b
- type family a <> b :: k
- class a >< b

# Documentation

data X #

Doc for: data X

Constructors

X | Doc for: X
XX | Doc for: XX
XXX | Doc for: XXX

Instances

(><) X XX XXX # |
Assoc * X # | Doc for: instance Assoc X
Associated Types data AssocD X (a :: X) :: * # type AssocT X (a :: X) :: * #
Test * X # | Doc for: instance Test X
type Foo X = Y # |
type (<>) X XXX XX = X # |
data AssocD * X = AssocX # |
type AssocT * X = Foo * X # |
data Bat * X = BatX X | BatXX { aaa :: X bbb :: Y } # | Doc for: data instance Bat X
type Foo * X = Y # |
type (<>) * X a = X # |

data Y #

Doc for: data Y

Instances

Assoc * Y # | Doc for: instance Assoc Y
Associated Types data AssocD Y (a :: Y) :: * # type AssocT Y (a :: Y) :: * #
Test * Y # | Doc for: instance Test Y
data Bar Y # |
data AssocD * Y = AssocY # |
type AssocT * Y = Bat * Y # |
data Bat * Y = BatY Y # | Doc for: data instance Bat Y
type Foo * Y = X # |
type (<>) * Y a = a # |

data Z #

Doc for: data Z

Constructors

ZA |
ZB |

Instances

data Bat Z where BatZ1 :: Bat Z ZA BatZ2 :: Bat Z ZB # | Doc for: data instance Bat Z

class Test a #

Doc for: class Test a

Instances

Test * Y # | Doc for: instance Test Y
Test * X # | Doc for: instance Test X

type family Foo a :: k #

Doc for: type family Foo a

Instances

type Foo * Y = X # |
type Foo * X = Y # |

data family Bat a :: * #

Doc for: data family Bat a

Instances

data Bat Z where BatZ1 :: Bat Z ZA BatZ2 :: Bat Z ZB # | Doc for: data instance Bat Z
data Bat * Y = BatY Y # | Doc for: data instance Bat Y
data Bat * X = BatX X | BatXX { aaa :: X bbb :: Y } # | Doc for: data instance 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

Assoc * Y # | Doc for: instance Assoc Y
Associated Types data AssocD Y (a :: Y) :: * # type AssocT Y (a :: Y) :: * #
Assoc * X # | Doc for: instance Assoc X
Associated Types data AssocD X (a :: X) :: * # type AssocT X (a :: X) :: * #

type family Bar b #

Doc for: type family Bar b

Equations

Bar X = X |
Bar y = Y |

type family a <> b :: k #

Instances

type (<>) X XXX XX = X # |
type (<>) * Y a = a # |
type (<>) * X a = X # |

class a >< b #

Instances

(><) X XX XXX # |