module Quox.Syntax.Builtin import Derive.Prelude import Quox.PrettyValExtra import Quox.Pretty import Quox.Syntax.Term %default total %language ElabReflection public export data Builtin = Main %runElab derive "Builtin" [Eq, Ord, Show, PrettyVal] public export builtinDesc : Builtin -> String builtinDesc Main = "a function declared as #[main]" public export builtinTypeDoc : {opts : LayoutOpts} -> Builtin -> Eff Pretty (Doc opts) builtinTypeDoc Main = prettyTerm empty $ Pi {q = 0} (one noLoc) (IOState noLoc) (SN $ Sig (Enum (fromList [!(ifUnicode "𝑎" "a")]) noLoc) (SN (IOState noLoc)) noLoc) noLoc