------------------------------------------------------------------------
-- Universe levels
------------------------------------------------------------------------

module Level where

data Level : Set where
  zero : Level
  suc  : (i : Level)  Level

{-# BUILTIN LEVEL     Level #-}
{-# BUILTIN LEVELZERO zero  #-}
{-# BUILTIN LEVELSUC  suc   #-}

infixl 6 _⊔_

_⊔_ : Level  Level  Level
zero   j     = j
suc i  zero  = suc i
suc i  suc j = suc (i  j)

{-# BUILTIN LEVELMAX _⊔_ #-}