module Prim.Type where
Primitives: Sorts🔗
This module defines bindings for the primitive sorts. These are
very magic symbols since they bootstrap everything about the
type system. For more details about the use of universes, see 1Lab.Type.
{-# BUILTIN TYPE Type #-} {-# BUILTIN TYPEOMEGA Typeω #-} {-# BUILTIN PROP SProp #-} {-# BUILTIN PROPOMEGA SPropω #-} {-# BUILTIN STRICTSET SSet #-} {-# BUILTIN STRICTSETOMEGA SSetω #-}
Additionally, we have the Level type, of universe
levels. The universe levels are an algebra containing 0, closed
under successor and maximum. The difference between this and e.g. the
natural numbers is that Level isn’t initial,
i.e. you can’t pattern-match on it.
postulate Level : Type lzero : Level lsuc : Level → Level _⊔_ : Level → Level → Level infixl 6 _⊔_ {-# BUILTIN LEVELUNIV LevelUniv #-} {-# BUILTIN LEVEL Level #-} {-# BUILTIN LEVELZERO lzero #-} {-# BUILTIN LEVELSUC lsuc #-} {-# BUILTIN LEVELMAX _⊔_ #-}