@@ -173,9 +173,9 @@ reifyTT :: Term -> ElabD Term
173reifyTT t@(App _ _ _)
173reifyTT t@(App _ _ _)
174 | (P _ f _, args) <- unApply t = reifyTTApp f args
174 | (P _ f _, args) <- unApply t = reifyTTApp f args
175reifyTT t@(P _ n _)
175reifyTT t@(P _ n _)
176− | n == reflm "Erased" = return $ Erased
176+ | n == reflm "Erased" = return Erased
177reifyTT t@(P _ n _)
177reifyTT t@(P _ n _)
178− | n == reflm "Impossible" = return $ Impossible
178+ | n == reflm "Impossible" = return Impossible
179reifyTT t = fail ("Unknown reflection term: " ++ show t)
179reifyTT t = fail ("Unknown reflection term: " ++ show t)
181reifyTTApp :: Name -> [Term] -> ElabD Term
181reifyTTApp :: Name -> [Term] -> ElabD Term
@@ -217,7 +217,7 @@ reifyRaw :: Term -> ElabD Raw
217reifyRaw t@(App _ _ _)
217reifyRaw t@(App _ _ _)
218 | (P _ f _, args) <- unApply t = reifyRawApp f args
218 | (P _ f _, args) <- unApply t = reifyRawApp f args
219reifyRaw t@(P _ n _)
219reifyRaw t@(P _ n _)
220− | n == reflm "RType" = return $ RType
220+ | n == reflm "RType" = return RType
221reifyRaw t = fail ("Unknown reflection raw term in reifyRaw: " ++ show t)
221reifyRaw t = fail ("Unknown reflection raw term in reifyRaw: " ++ show t)
223reifyRawApp :: Name -> [Term] -> ElabD Raw
223reifyRawApp :: Name -> [Term] -> ElabD Raw
@@ -332,9 +332,9 @@ reifyTTBinderApp reif f [t]
332reifyTTBinderApp _ f args = fail ("Unknown reflection binder: " ++ show (f, args))
332reifyTTBinderApp _ f args = fail ("Unknown reflection binder: " ++ show (f, args))
334reifyTTConst :: Term -> ElabD Const
334reifyTTConst :: Term -> ElabD Const
335−reifyTTConst (P _ n _) | n == reflm "StrType" = return $ StrType
335+reifyTTConst (P _ n _) | n == reflm "StrType" = return StrType
336−reifyTTConst (P _ n _) | n == reflm "VoidType" = return $ VoidType
336+reifyTTConst (P _ n _) | n == reflm "VoidType" = return VoidType
337−reifyTTConst (P _ n _) | n == reflm "Forgot" = return $ Forgot
337+reifyTTConst (P _ n _) | n == reflm "Forgot" = return Forgot
338reifyTTConst t@(App _ _ _)
338reifyTTConst t@(App _ _ _)
339 | (P _ f _, [arg]) <- unApply t = reifyTTConstApp f arg
339 | (P _ f _, [arg]) <- unApply t = reifyTTConstApp f arg
340reifyTTConst t = fail ("Unknown reflection constant: " ++ show t)
340reifyTTConst t = fail ("Unknown reflection constant: " ++ show t)
@@ -343,23 +343,23 @@ reifyTTConstApp :: Name -> Term -> ElabD Const
343reifyTTConstApp f aty
343reifyTTConstApp f aty
344 | f == reflm "AType" = fmap AType (reifyArithTy aty)
344 | f == reflm "AType" = fmap AType (reifyArithTy aty)
345reifyTTConstApp f (Constant c@(I _))
345reifyTTConstApp f (Constant c@(I _))
346− | f == reflm "I" = return $ c
346+ | f == reflm "I" = return c
347reifyTTConstApp f (Constant c@(BI _))
347reifyTTConstApp f (Constant c@(BI _))
348− | f == reflm "BI" = return $ c
348+ | f == reflm "BI" = return c
349reifyTTConstApp f (Constant c@(Fl _))
349reifyTTConstApp f (Constant c@(Fl _))
350− | f == reflm "Fl" = return $ c
350+ | f == reflm "Fl" = return c
351reifyTTConstApp f (Constant c@(Ch _))
351reifyTTConstApp f (Constant c@(Ch _))
352− | f == reflm "Ch" = return $ c
352+ | f == reflm "Ch" = return c
353reifyTTConstApp f (Constant c@(Str _))
353reifyTTConstApp f (Constant c@(Str _))
354− | f == reflm "Str" = return $ c
354+ | f == reflm "Str" = return c
355reifyTTConstApp f (Constant c@(B8 _))
355reifyTTConstApp f (Constant c@(B8 _))
356− | f == reflm "B8" = return $ c
356+ | f == reflm "B8" = return c
357reifyTTConstApp f (Constant c@(B16 _))
357reifyTTConstApp f (Constant c@(B16 _))
358− | f == reflm "B16" = return $ c
358+ | f == reflm "B16" = return c
359reifyTTConstApp f (Constant c@(B32 _))
359reifyTTConstApp f (Constant c@(B32 _))
360− | f == reflm "B32" = return $ c
360+ | f == reflm "B32" = return c
361reifyTTConstApp f (Constant c@(B64 _))
361reifyTTConstApp f (Constant c@(B64 _))
362− | f == reflm "B64" = return $ c
362+ | f == reflm "B64" = return c
363reifyTTConstApp f v@(P _ _ _) =
363reifyTTConstApp f v@(P _ _ _) =
364 lift . tfail . Msg $
364 lift . tfail . Msg $
365 "Can't reify the variable " ++
365 "Can't reify the variable " ++
@@ -389,9 +389,9 @@ reifyIntTy tm = fail $ "The term " ++ show tm ++ " is not a reflected IntTy"
389reifyTTUExp :: Term -> ElabD UExp
389reifyTTUExp :: Term -> ElabD UExp
390reifyTTUExp t@(App _ _ _)
390reifyTTUExp t@(App _ _ _)
391 = case unApply t of
391 = case unApply t of
392− (P _ f _, [Constant (Str str), Constant (I i)])
392+ (P _ f _, [Constant (Str str), Constant (I i)])
393 | f == reflm "UVar" -> return $ UVar str i
393 | f == reflm "UVar" -> return $ UVar str i
394− (P _ f _, [Constant (I i)])
394+ (P _ f _, [Constant (I i)])
395 | f == reflm "UVal" -> return $ UVal i
395 | f == reflm "UVal" -> return $ UVal i
396 _ -> fail ("Unknown reflection type universe expression: " ++ show t)
396 _ -> fail ("Unknown reflection type universe expression: " ++ show t)
397reifyTTUExp t = fail ("Unknown reflection type universe expression: " ++ show t)
397reifyTTUExp t = fail ("Unknown reflection type universe expression: " ++ show t)
@@ -487,7 +487,7 @@ reflectTTQuotePattern unq (Proj t i)
487reflectTTQuotePattern unq Erased
487reflectTTQuotePattern unq Erased
488 = do erased <- claimTy (sMN 0 "erased") (Var (reflm "TT"))
488 = do erased <- claimTy (sMN 0 "erased") (Var (reflm "TT"))
489 movelast erased
489 movelast erased
490− fill $ (Var erased)
490+ fill (Var erased)
491reflectTTQuotePattern unq Impossible
491reflectTTQuotePattern unq Impossible
492 = lift . tfail . InternalMsg $
492 = lift . tfail . InternalMsg $
493 "Phase error! The Impossible constructor is for optimization only and should not have been reflected during elaboration."
493 "Phase error! The Impossible constructor is for optimization only and should not have been reflected during elaboration."
@@ -1190,14 +1190,17 @@ reflectDatatype (RDatatype tyn tyConArgs tyConRes constrs) =
1190 , rawList (Var $ tacN "TyConArg") (map reflectConArg tyConArgs)
1190 , rawList (Var $ tacN "TyConArg") (map reflectConArg tyConArgs)
1191 , reflectRaw tyConRes
1191 , reflectRaw tyConRes
1192 , rawList (rawTripleTy (Var $ reflm "TTName")
1192 , rawList (rawTripleTy (Var $ reflm "TTName")
1193− (RApp (Var (sNS (sUN "List") ["List", "Prelude"])) (Var $ tacN "CtorArg"))
1193+ (RApp (Var (sNS (sUN "List") ["List", "Prelude"]))
1194+ (Var $ tacN "CtorArg"))
1194 (Var $ reflm "Raw"))
1195 (Var $ reflm "Raw"))
1195− [ rawTriple ((Var $ reflm "TTName"),
1196+ [ rawTriple ((Var $ reflm "TTName")
1196− (RApp (Var (sNS (sUN "List") ["List", "Prelude"])) (Var $ tacN "CtorArg")),
1197+ ,(RApp (Var (sNS (sUN "List") ["List", "Prelude"]))
1198+ (Var $ tacN "CtorArg"))
1197− (Var $ reflm "Raw"))
1199+ ,(Var $ reflm "Raw"))
1198− (reflectName cn,
1200+ (reflectName cn
1201+ ,rawList (Var $ tacN "CtorArg")
1199− rawList (Var $ tacN "CtorArg") (map reflectCtorArg cargs),
1202+ (map reflectCtorArg cargs)
1200− reflectRaw cty)
1203+ ,reflectRaw cty)
1201 | (cn, cargs, cty) <- constrs
1204 | (cn, cargs, cty) <- constrs
@@ -1207,11 +1210,17 @@ reflectDatatype (RDatatype tyn tyConArgs tyConRes constrs) =
1207 RApp (Var $ tacN "TyConIndex") (reflectArg a)
1210 RApp (Var $ tacN "TyConIndex") (reflectArg a)
1209reflectFunClause :: RFunClause Term -> Raw
1212reflectFunClause :: RFunClause Term -> Raw
1210−reflectFunClause (RMkFunClause lhs rhs) = raw_apply (Var $ tacN "MkFunClause") $ (Var $ reflm "TT") : map reflect [ lhs, rhs ]
1213+reflectFunClause (RMkFunClause lhs rhs) = raw_apply (Var $ tacN "MkFunClause")
1214+ $ (Var $ reflm "TT") : map reflect [ lhs, rhs ]
1211−reflectFunClause (RMkImpossibleClause lhs) = raw_apply (Var $ tacN "MkImpossibleClause") $ [ Var $ reflm "TT", reflect lhs ]
1216+reflectFunClause (RMkImpossibleClause lhs) = raw_apply (Var $ tacN "MkImpossibleClause")
1217+ [ Var $ reflm "TT", reflect lhs ]
1213reflectFunDefn :: RFunDefn Term -> Raw
1219reflectFunDefn :: RFunDefn Term -> Raw
1214−reflectFunDefn (RDefineFun name clauses) = raw_apply (Var $ tacN "DefineFun") [ Var $ reflm "TT"
1220+reflectFunDefn (RDefineFun name clauses) = raw_apply (Var $ tacN "DefineFun")
1215− , reflectName name
1222+ , reflectName name
1216− , rawList (RApp (Var $ tacN "FunClause") (Var $ reflm "TT")) (map reflectFunClause clauses)
1223+ , rawList (RApp (Var $ tacN "FunClause")
1224+ (Var $ reflm "TT"))
1225+ (map reflectFunClause clauses)