0 | module Data.Singleton
5 | data Singleton : a -> Type where
6 | Val : (x : a) -> Singleton x
8 | public export %inline
9 | reindex : (0 _ : x === y) -> Singleton x -> Singleton y
12 | public export %inline
13 | unVal : Singleton {a} x -> a
16 | public export %inline
17 | (.unVal) : Singleton {a} x -> a
23 | pure : (x : a) -> Singleton x
27 | (<*>) : Singleton f -> Singleton x -> Singleton (f x)
28 | Val f <*> Val x = Val (f x)