quox/lib/Quox/Syntax/Universe.idr

28 lines
629 B
Idris
Raw Normal View History

2021-07-20 16:05:19 -04:00
module Quox.Syntax.Universe
import Quox.Pretty
import Data.Fin
2022-05-02 16:40:28 -04:00
import Generics.Derive
2021-07-20 16:05:19 -04:00
%default total
2022-05-02 16:40:28 -04:00
%language ElabReflection
2021-07-20 16:05:19 -04:00
||| `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
2022-05-02 16:40:28 -04:00
%runElab derive "Universe" [Generic, Meta, Eq, Ord, DecEq, Show]
2021-07-20 16:05:19 -04:00
export
PrettyHL Universe where
prettyM UAny = pure $ hl Delim "_"
prettyM (U l) = pure $ hl Free $ pretty l
2022-05-08 14:02:21 -04:00
export %inline
fromInteger : (x : Integer) -> (0 _ : So (x >= 0)) => Universe
fromInteger x = U $ fromInteger x