@@ -29,7 +29,7 @@ mkFin (S k) (S j) = do i <- mkFin k j
30mkToClause : TTName -> (size, i : Nat) ->
30mkToClause : TTName -> (size, i : Nat) ->
31 (constr : (TTName, List CtorArg, Raw)) ->
31 (constr : (TTName, List CtorArg, Raw)) ->
32− Elab FunClause
32+ Elab (FunClause Raw)
33mkToClause fn size i (n, [], Var ty) =
33mkToClause fn size i (n, [], Var ty) =
34 MkFunClause (RApp (Var fn) (Var n)) <$> mkFin size i
34 MkFunClause (RApp (Var fn) (Var n)) <$> mkFin size i
35mkToClause fn size i (n, _, ty) =
35mkToClause fn size i (n, _, ty) =
@@ -38,14 +38,14 @@ mkToClause fn size i (n, _, ty) =
39mkFromClause : TTName -> (size, i : Nat) ->
39mkFromClause : TTName -> (size, i : Nat) ->
40 (constr : (TTName, List CtorArg, Raw)) ->
40 (constr : (TTName, List CtorArg, Raw)) ->
41− Elab FunClause
41+ Elab (FunClause Raw)
42mkFromClause fn size i (n, [], Var ty) =
42mkFromClause fn size i (n, [], Var ty) =
43 return $ MkFunClause (RApp (Var fn) !(mkFin size i)) (Var n)
43 return $ MkFunClause (RApp (Var fn) !(mkFin size i)) (Var n)
44mkFromClause fn size i (n, _, ty) =
44mkFromClause fn size i (n, _, ty) =
45 fail [TextPart "unsupported constructor", NamePart n]
45 fail [TextPart "unsupported constructor", NamePart n]
48−mkOk1Clause : TTName -> (size, i : Nat) -> (constr : (TTName, List CtorArg, Raw)) -> Elab FunClause
48+mkOk1Clause : TTName -> (size, i : Nat) -> (constr : (TTName, List CtorArg, Raw)) -> Elab (FunClause Raw)
49mkOk1Clause fn size i (n, [], Var ty) =
49mkOk1Clause fn size i (n, [], Var ty) =
50 return $ MkFunClause (RApp (Var fn) (Var n))
50 return $ MkFunClause (RApp (Var fn) (Var n))
51 [| (Var (UN "Refl")) (Var ty) (Var n) |]
51 [| (Var (UN "Refl")) (Var ty) (Var n) |]
@@ -53,7 +53,7 @@ mkOk1Clause fn size i (n, _, ty) =
53 fail [TextPart "unsupported constructor", NamePart n]
53 fail [TextPart "unsupported constructor", NamePart n]
56−mkOk2Clause : TTName -> (size, i : Nat) -> (constr : (TTName, List CtorArg, Raw)) -> Elab FunClause
56+mkOk2Clause : TTName -> (size, i : Nat) -> (constr : (TTName, List CtorArg, Raw)) -> Elab (FunClause Raw)
57mkOk2Clause fn size i (n, [], Var ty) =
57mkOk2Clause fn size i (n, [], Var ty) =
58 return $ MkFunClause (RApp (Var fn) !(mkFin size i))
58 return $ MkFunClause (RApp (Var fn) !(mkFin size i))
59 [| (Var "Refl") `(Fin ~(quote size))
59 [| (Var "Refl") `(Fin ~(quote size))
@@ -62,9 +62,9 @@ mkOk2Clause fn size i (n, _, ty) =
62 fail [TextPart "unsupported constructor", NamePart n]
62 fail [TextPart "unsupported constructor", NamePart n]
65−mkToClauses : TTName -> Nat -> List (TTName, List CtorArg, Raw) -> Elab (List FunClause)
65+mkToClauses : TTName -> Nat -> List (TTName, List CtorArg, Raw) -> Elab (List (FunClause Raw))
66mkToClauses fn size xs = mkToClauses' Z xs
66mkToClauses fn size xs = mkToClauses' Z xs
67− where mkToClauses' : Nat -> List (TTName, List CtorArg, Raw) -> Elab (List FunClause)
67+ where mkToClauses' : Nat -> List (TTName, List CtorArg, Raw) -> Elab (List (FunClause Raw))
68 mkToClauses' k [] = return []
68 mkToClauses' k [] = return []
69 mkToClauses' k (x :: xs) = do rest <- mkToClauses' (S k) xs
69 mkToClauses' k (x :: xs) = do rest <- mkToClauses' (S k) xs
70 clause <- mkToClause fn size k x
70 clause <- mkToClause fn size k x
@@ -76,7 +76,7 @@ mkToClauses fn size xs = mkToClauses' Z xs
76||| This is to satisfy the totality checker, because `impossible`
76||| This is to satisfy the totality checker, because `impossible`
77||| clauses are still
77||| clauses are still
78mkAbsurdFinClause : (fn : TTName) -> (goal : Raw -> Raw) -> (size : Nat) ->
78mkAbsurdFinClause : (fn : TTName) -> (goal : Raw -> Raw) -> (size : Nat) ->
79− Elab FunClause
79+ Elab (FunClause Raw)
80mkAbsurdFinClause fn goal size =
80mkAbsurdFinClause fn goal size =
81 do pv <- gensym "badfin"
81 do pv <- gensym "badfin"
82 lhsArg <- lhsBody pv size
82 lhsArg <- lhsBody pv size
@@ -92,26 +92,26 @@ mkAbsurdFinClause fn goal size =
94mkFromClauses : TTName -> TTName -> Nat ->
94mkFromClauses : TTName -> TTName -> Nat ->
95− List (TTName, List CtorArg, Raw) -> Elab (List FunClause)
95+ List (TTName, List CtorArg, Raw) -> Elab (List (FunClause Raw))
96mkFromClauses fn ty size xs = mkFromClauses' Z xs
96mkFromClauses fn ty size xs = mkFromClauses' Z xs
97− where mkFromClauses' : Nat -> List (TTName, List CtorArg, Raw) -> Elab (List FunClause)
97+ where mkFromClauses' : Nat -> List (TTName, List CtorArg, Raw) -> Elab (List (FunClause Raw))
98 mkFromClauses' k [] =
98 mkFromClauses' k [] =
99 return [!(mkAbsurdFinClause fn (const (Var ty)) size)]
99 return [!(mkAbsurdFinClause fn (const (Var ty)) size)]
100 mkFromClauses' k (x :: xs) = do rest <- mkFromClauses' (S k) xs
100 mkFromClauses' k (x :: xs) = do rest <- mkFromClauses' (S k) xs
101 clause <- mkFromClause fn size k x
101 clause <- mkFromClause fn size k x
102 return $ clause :: rest
102 return $ clause :: rest
104−mkOk1Clauses : TTName -> Nat -> List (TTName, List CtorArg, Raw) -> Elab (List FunClause)
104+mkOk1Clauses : TTName -> Nat -> List (TTName, List CtorArg, Raw) -> Elab (List (FunClause Raw))
105mkOk1Clauses fn size xs = mkOk1Clauses' Z xs
105mkOk1Clauses fn size xs = mkOk1Clauses' Z xs
106− where mkOk1Clauses' : Nat -> List (TTName, List CtorArg, Raw) -> Elab (List FunClause)
106+ where mkOk1Clauses' : Nat -> List (TTName, List CtorArg, Raw) -> Elab (List (FunClause Raw))
107 mkOk1Clauses' k [] = return []
107 mkOk1Clauses' k [] = return []
108 mkOk1Clauses' k (x :: xs) = do rest <- mkOk1Clauses' (S k) xs
108 mkOk1Clauses' k (x :: xs) = do rest <- mkOk1Clauses' (S k) xs
109 clause <- mkOk1Clause fn size k x
109 clause <- mkOk1Clause fn size k x
110 return $ clause :: rest
110 return $ clause :: rest
112−mkOk2Clauses : TTName -> Nat -> List (TTName, List CtorArg, Raw) -> (Raw -> Raw) -> Elab (List FunClause)
112+mkOk2Clauses : TTName -> Nat -> List (TTName, List CtorArg, Raw) -> (Raw -> Raw) -> Elab (List (FunClause Raw))
113mkOk2Clauses fn size xs resTy = mkOk2Clauses' Z xs
113mkOk2Clauses fn size xs resTy = mkOk2Clauses' Z xs
114− where mkOk2Clauses' : Nat -> List (TTName, List CtorArg, Raw) -> Elab (List FunClause)
114+ where mkOk2Clauses' : Nat -> List (TTName, List CtorArg, Raw) -> Elab (List (FunClause Raw))
115 mkOk2Clauses' k [] = return [!(mkAbsurdFinClause fn resTy size)]
115 mkOk2Clauses' k [] = return [!(mkAbsurdFinClause fn resTy size)]
116 mkOk2Clauses' k (x :: xs) = do rest <- mkOk2Clauses' (S k) xs
116 mkOk2Clauses' k (x :: xs) = do rest <- mkOk2Clauses' (S k) xs
117 clause <- mkOk2Clause fn size k x
117 clause <- mkOk2Clause fn size k x