write quantities before names in binders again
also fixup comments in typechecker
This commit is contained in:
parent
a6f43a772e
commit
fe8c224299
4 changed files with 78 additions and 57 deletions
|
@ -1,6 +1,7 @@
|
|||
module Quox.Syntax.Qty
|
||||
|
||||
import Quox.Pretty
|
||||
import Quox.Name
|
||||
import public Quox.Decidable
|
||||
import Data.DPair
|
||||
|
||||
|
@ -18,10 +19,12 @@ blobD : Pretty.HasEnv m => m (Doc HL)
|
|||
blobD = hlF Delim $ ifUnicode "·" "@"
|
||||
|
||||
export %inline
|
||||
prettyQtyBinds : Pretty.HasEnv m => PrettyHL q => List q -> m (Doc HL)
|
||||
prettyQtyBinds [] = pure ""
|
||||
prettyQtyBinds qtys =
|
||||
pure $ !blobD <++> align (sep $ commas !(traverse pretty0M qtys))
|
||||
prettyQtyBinds : Pretty.HasEnv m => PrettyHL q => PrettyHL a =>
|
||||
List q -> a -> m (Doc HL)
|
||||
prettyQtyBinds [] x = pretty0M x
|
||||
prettyQtyBinds qtys x = pure $
|
||||
hang 2 $ sep [aseparate comma !(traverse pretty0M qtys) <++> !blobD,
|
||||
!(pretty0M x)]
|
||||
|
||||
|
||||
public export
|
||||
|
|
|
@ -31,6 +31,7 @@ caseD = hl Syntax "case"
|
|||
ofD = hl Syntax "of"
|
||||
returnD = hl Syntax "return"
|
||||
|
||||
|
||||
mutual
|
||||
export covering
|
||||
PrettyHL q => PrettyHL (Term q d n) where
|
||||
|
@ -110,18 +111,9 @@ mutual
|
|||
ScopeTerm q d n -> m (Doc HL)
|
||||
prettyBindType qtys x s arr t =
|
||||
parensIfM Outer $ hang 2 $
|
||||
!(prettyBinder qtys x s) <++> arr
|
||||
parens !(prettyQtyBinds qtys $ TV x) <++> arr
|
||||
<//> !(under T x $ prettyM t)
|
||||
|
||||
export covering
|
||||
prettyBinder : Pretty.HasEnv m => PrettyHL q =>
|
||||
List q -> Name -> Term q d n -> m (Doc HL)
|
||||
prettyBinder pis x a =
|
||||
pure $ parens $ hang 2 $
|
||||
hsep [hl TVar !(prettyM x),
|
||||
sep [!(prettyQtyBinds pis),
|
||||
hsep [colonD, !(withPrec Outer $ prettyM a)]]]
|
||||
|
||||
export covering
|
||||
prettyLams : Pretty.HasEnv m => PrettyHL q =>
|
||||
BinderSort -> List Name -> Term q _ _ -> m (Doc HL)
|
||||
|
@ -161,6 +153,6 @@ mutual
|
|||
q -> a -> Name -> b -> List (List Name, Doc HL, c) -> m (Doc HL)
|
||||
prettyCase pi elim r ret arms =
|
||||
pure $ align $ sep $
|
||||
[hsep [caseD, !(prettyM elim), !(prettyQtyBinds [pi])],
|
||||
[hsep [caseD, !(prettyQtyBinds [pi] elim)],
|
||||
hsep [returnD, !(prettyM r), !darrowD, !(under T r $ prettyM ret)],
|
||||
hsep [ofD, !(prettyArms arms)]]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue