noether-0.0.1: Math in Haskell.

Safe HaskellNone
LanguageHaskell2010

Noether.Lemmata.TypeFu.DList

Documentation

data The k x Source #

Constructors

The 

data Tagged s k x Source #

Constructors

Tagged 

Instances

type Cmp * (Tagged s1 _1 _3) (Tagged s2 _ _2) Source # 
type Cmp * (Tagged s1 _1 _3) (Tagged s2 _ _2) = Cmp Symbol s1 s2

data DList xs :: Type where Source #

Constructors

Nil :: DList '[] 
Tag :: The Symbol s -> The k x -> DList xs -> DList (Tagged s k x ': xs) 

nil :: DList '[] Source #

data Foo Source #

Constructors

Bar 
Baz 

type (**) k x = (The :: The k x) Source #

type (~>) s the = Tag (The :: The Symbol s) the infixr 5 Source #

type (|-|) a b = a b infixr 0 Source #

type (|<|) a b = a (b Nil) infixr 0 Source #

type (|>|) a b = Conv (a b) infixr 0 Source #

type family Conv (a :: DList xs) where ... Source #

Equations

Conv (_ :: DList xs) = Sort xs 

newtype DList_ xs Source #

Constructors

DList_ (Proxy (Sort xs)) 

type B = ("index" ~> (Nat ** 1)) |-| (("type" ~> (Type ** Type)) |-| (("afoo" ~> (Nat ** 2)) |-| (("akoe" ~> (Nat ** 2)) |-| (("pqr" ~> (Type ** (Type -> Type))) |<| ("aardvark" ~> ([Type] ** '[Type])))))) Source #

type A = ("index" ~> (Nat ** 1)) |>| (("type" ~> (Type ** Type)) |-| (("afoo" ~> (Nat ** 2)) |-| (("akoe" ~> (Nat ** 2)) |-| (("pqr" ~> (Type ** (Type -> Type))) |<| ("aardvark" ~> ([Type] ** (("b" ~> (Type ** Nat)) |>| (("aa" ~> (Type ** (Type, Type))) |<| ("a" ~> (Nat ** 1)))))))))) Source #

class A__ a b | a -> b Source #

Instances

A_ a => A__ a ATag Source # 

data ATag Source #

Instances

A_ a => A__ a ATag Source # 

class A_ a Source #

Instances

(~) [Type] a A => A_ a Source #