vinyl-0.4.3: Extensible Records

Safe HaskellNone
LanguageHaskell2010

Data.Vinyl.Witnesses

Synopsis

Documentation

class Implicit p where Source

Methods

implicitly :: p Source

Instances

Implicit (Elem k x xs) => Implicit (Elem k x ((:) k y xs)) 
Implicit (Elem k x ((:) k x xs)) 

data Elem :: k -> [k] -> * where Source

An inductive list membership proposition.

Constructors

Here :: Elem x (x : xs) 
There :: Elem x xs -> Elem x (y : xs) 

Instances

Implicit (Elem k x xs) => Implicit (Elem k x ((:) k y xs)) 
Implicit (Elem k x ((:) k x xs)) 

type IElem x xs = Implicit (Elem x xs) Source

A constraint for implicit resolution of list membership proofs.

type (∈) x xs = IElem x xs Source