module Quox.Syntax.Universe import Quox.Pretty import Data.Fin import Generics.Derive %default total %language ElabReflection ||| `UAny` doesn't show up in programs, but when checking something is ||| just some type (e.g. in a signature) it's checked against `Star UAny` public export data Universe = U Nat | UAny %name Universe l %runElab derive "Universe" [Generic, Meta, Eq, Ord, DecEq, Show] export PrettyHL Universe where prettyM UAny = pure $ hl Delim "_" prettyM (U l) = pure $ hl Free $ pretty l