diff --git a/language-sygus.cabal b/language-sygus.cabal
--- a/language-sygus.cabal
+++ b/language-sygus.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                language-sygus
-version:             0.1.1.3
+version:             0.2.0.0
 synopsis:            A parser and printer for the SyGuS 2.0 language.   
 description:         A parser and printer for the SyGuS 2.0 language.  <https://sygus.org/assets/pdf/SyGuS-IF_2.0.pdf>
 license:             BSD3
@@ -28,16 +28,16 @@
   -- other-extensions:    
   build-tools:         alex, happy
   build-depends:         array >= 0.3 && < 0.6
-                       , base >=4.10 && <= 4.18
-                       , hashable >= 1.2.6.0 && <= 1.4.1.0
-                       , text >= 1.1 && < 2.1
+                       , base >=4.10 && < 5
+                       , hashable >= 1.2.6.0 && < 1.7
+                       , text >= 1.1 && < 2.2
   hs-source-dirs:      src
   default-language:    Haskell2010
   ghc-options:         -Wall
 
 test-suite test
   build-depends:         base
-                       , deepseq >= 1.1 && <1.5
+                       , deepseq >= 1.1 && <1.6
                        , language-sygus
                        , tasty >= 1.0
                        , tasty-hunit >= 0.10
diff --git a/src/Sygus/ParseSygus.y b/src/Sygus/ParseSygus.y
--- a/src/Sygus/ParseSygus.y
+++ b/src/Sygus/ParseSygus.y
@@ -60,6 +60,7 @@
     declareDatatypes    { TSymbol "declare-datatypes" }
     declareSort         { TSymbol "declare-sort" }
     defineFun           { TSymbol "define-fun" }
+    defineFunRec        { TSymbol "define-fun-rec" }
     defineSort          { TSymbol "define-sort" }
     setLogic            { TSymbol "set-logic" }
     setOption           { TSymbol "set-option" }
@@ -183,6 +184,7 @@
         | '(' declareDatatypes '(' sort_decls1 ')' '(' dt_decs1 ')' ')' { DeclareDatatypes $4 $7 }
         | '(' declareSort symb num ')'                                  { DeclareSort $3 $4 }
         | '(' defineFun symb '(' sorted_vars ')' sort term ')'          { DefineFun $3 $5 $7 $8 }
+        | '(' defineFunRec symb '(' sorted_vars ')' sort term ')'       { DefineFunRec $3 $5 $7 $8 }
         | '(' defineSort symb sort ')'                                  { DefineSort $3 $4 }
         | '(' setLogic symb ')'                                         { SetLogic $3 }
         | '(' setOption ':' symb lit ')'                                { SetOption $4 $5 }
diff --git a/src/Sygus/Print.hs b/src/Sygus/Print.hs
--- a/src/Sygus/Print.hs
+++ b/src/Sygus/Print.hs
@@ -99,6 +99,9 @@
     printSygus (DefineFun symb sv s t) =
         "(define-fun " <> printSygus symb <> " (" <> printSygusList sv <> ") "
             <> printSygus s <> " " <> printSygus t <> ")"
+    printSygus (DefineFunRec symb sv s t) =
+        "(define-fun-rec " <> printSygus symb <> " (" <> printSygusList sv <> ") "
+            <> printSygus s <> " " <> printSygus t <> ")"
     printSygus (DefineSort symb s) =
         "(define-sort " <> printSygus symb <> " " <> printSygus s <> ")"
     printSygus (SetLogic l) = "(set-logic " <> printSygus l <> ")"
diff --git a/src/Sygus/Syntax.hs b/src/Sygus/Syntax.hs
--- a/src/Sygus/Syntax.hs
+++ b/src/Sygus/Syntax.hs
@@ -82,6 +82,7 @@
             | DeclareDatatypes [SortDecl] [DTDec]
             | DeclareSort Symbol Integer
             | DefineFun Symbol [SortedVar] Sort Term
+            | DefineFunRec Symbol [SortedVar] Sort Term
             | DefineSort Symbol Sort
             | SetLogic Symbol
             | SetOption Symbol Lit
