Zonk metas in functions, optional type signature on ptype

This commit is contained in:
2024-09-07 21:29:06 -07:00
parent f4cbde2c98
commit 391c9449ac
10 changed files with 89 additions and 17 deletions

View File

@@ -283,7 +283,7 @@ findSplit (_ :: xs) = findSplit xs
-- we could pass into build case and use it for (x /? y)
-- TODO, we may need to filter these for the situation.
-- TODO, we may need to filter these for the type
getConstructors : Context -> Val -> M (List (String, Nat, Tm))
getConstructors ctx (VRef fc nm _ _) = do
names <- lookupTCon nm
@@ -312,10 +312,8 @@ extendPi ctx (VPi x str icit a b) nms = do
extendPi ctx' tyb (nms :< MkBind nm icit a)
extendPi ctx ty nms = pure (ctx, ty, nms <>> [])
-- filter clause
-- FIXME - I don't think we're properly noticing
-- turn vars into lets for forced values.
-- Maybe we need to do more? revist the paper.
updateContext : Context -> List (Nat, Val) -> M Context
updateContext ctx [] = pure ctx
updateContext ctx ((k, val) :: cs) = let ix = (length ctx.env `minus` k) `minus` 1 in
@@ -350,7 +348,6 @@ buildCase ctx prob scnm scty (dcName, _, ty) = do
-- I think I'm going down a different road than Idris..
-- do this or see how other people manage?
-- this puts the failure on the LHS
-- unifying these should say say VVar 1 is Nat.