diff --git a/TODO.md b/TODO.md
index 3dedd47..b540d92 100644
--- a/TODO.md
+++ b/TODO.md
@@ -2,7 +2,6 @@
 
 > 支持直接递归函数与相互递归函数,不能判断等价的地方就不判断。
 
-[lang0] `equivalent` -- `FnRecursive`
 [lang0] `equivalentNeutral` -- `ApRecursive`
 
 [lang0] test about equivalent between recursive functions
diff --git a/src/lang0/equivalent/equivalent.ts b/src/lang0/equivalent/equivalent.ts
index 44c45fa..15e22ac 100644
--- a/src/lang0/equivalent/equivalent.ts
+++ b/src/lang0/equivalent/equivalent.ts
@@ -30,7 +30,11 @@ export function equivalent(
     }
 
     case "FnRecursive": {
-      throw new Error()
+      return (
+        right["@kind"] === "FnRecursive" &&
+        left.name === right.name &&
+        left.mod === right.mod
+      )
     }
 
     case "Lazy": {