@@ -90,7 +90,7 @@ elabVal info tm
9090 = do ctxt <- getContext
9191 logLvl 10 (showImp True tm)
9292 ((tm', defer), _) <- tclift $ elaborate ctxt (MN 0 "val") infP
93− (build info False (infTerm tm))
93+ (build info True (infTerm tm))
9494 logLvl 3 ("Value: " ++ show tm')
9595 let vtm = getInferTerm tm'
9696 logLvl 2 (show vtm)
@@ -241,18 +241,30 @@ elab info pattern tm = do elab' tm
241241 elab' ty
242242 elab' sc
243243 solve
244+ elab' (PLet n Placeholder val sc)
245+ = do attack; -- (h:_) <- get_holes
246+ tyn <- unique_hole (MN 0 "letty")
247+ -- start_unify h
248+ claim tyn (RSet 0)
249+ valn <- unique_hole (MN 0 "letval")
250+ claim valn (Var tyn)
251+ letbind n (Var tyn) (Var valn)
252+ focus valn
253+ elab' val
254+ elab' sc
255+ -- end_unify
256+ solve
244257 elab' (PApp fc (PRef _ f) args)
245258 | Just ps <- lookupCtxt f (inblock info)
246259 = erun fc $
247260 elabApp (liftname info f) (map (PExp . (PRef fc)) ps ++ args)
248261 | otherwise = erun fc $ elabApp f args
249262 where elabApp f args
250− = -- erun (FC "FOO" 42) $
251− try (do ns <- apply (Var f) (map isph args)
252− solve
253− elabArgs ns (map getTm args))
254− (do apply_elab f (map toElab args)
255− solve)
263+ = try (do ns <- apply (Var f) (map isph args)
264+ solve
265+ elabArgs ns (map getTm args))
266+ (do apply_elab f (map toElab args)
267+ solve)
256268 elab' (PApp fc f [arg])
257269 = erun fc $
258270 do simple_app (elab' f) (elab' (getTm arg))