From 687895ef96b02edb9cf6c76135353947fe267eb5 Mon Sep 17 00:00:00 2001
From: Matthew Pickering <matthewtpickering@gmail.com>
Date: Mon, 30 Oct 2023 16:41:32 +0000
Subject: [PATCH] Add patches for updated Cabal versions and liquid-fixpoint

---
 ci/config.cabal.project               |   2 +-
 patches/Cabal-3.10.2.1.patch          |  12 +++
 patches/Cabal-syntax-3.10.2.0.patch   |  12 +++
 patches/liquid-fixpoint-0.9.2.5.patch | 126 ++++++++++++++++++++++++++
 4 files changed, 151 insertions(+), 1 deletion(-)
 create mode 100644 patches/Cabal-3.10.2.1.patch
 create mode 100644 patches/Cabal-syntax-3.10.2.0.patch
 create mode 100644 patches/liquid-fixpoint-0.9.2.5.patch

diff --git a/ci/config.cabal.project b/ci/config.cabal.project
index d560112f..68c9380b 100644
--- a/ci/config.cabal.project
+++ b/ci/config.cabal.project
@@ -3,7 +3,7 @@
 -- ghc/ghc#23048.
 
 index-state:
-    hackage.haskell.org 2023-07-31T12:18:14Z,
+    hackage.haskell.org 2023-10-30T12:18:14Z,
     head.hackage HEAD
 
 constraints: th-abstraction >= 0.4
diff --git a/patches/Cabal-3.10.2.1.patch b/patches/Cabal-3.10.2.1.patch
new file mode 100644
index 00000000..c9cdb7ac
--- /dev/null
+++ b/patches/Cabal-3.10.2.1.patch
@@ -0,0 +1,12 @@
+diff --git a/Cabal.cabal b/Cabal.cabal
+index 9bf2bf1..00988be 100644
+--- a/Cabal.cabal
++++ b/Cabal.cabal
+@@ -46,6 +46,7 @@ library
+     process    >= 1.2.1.0  && < 1.7,
+     time       >= 1.4.0.1  && < 1.13
+ 
++
+   if os(windows)
+     build-depends: Win32 >= 2.3.0.0 && < 2.14
+   else
diff --git a/patches/Cabal-syntax-3.10.2.0.patch b/patches/Cabal-syntax-3.10.2.0.patch
new file mode 100644
index 00000000..9a64df63
--- /dev/null
+++ b/patches/Cabal-syntax-3.10.2.0.patch
@@ -0,0 +1,12 @@
+diff --git a/Cabal-syntax.cabal b/Cabal-syntax.cabal
+index 6efbaea..e8bd0e0 100644
+--- a/Cabal-syntax.cabal
++++ b/Cabal-syntax.cabal
+@@ -45,6 +45,7 @@ library
+     -- See also https://github.com/ekmett/transformers-compat/issues/35
+     transformers (>= 0.3      && < 0.4) || (>=0.4.1.0 && <0.7)
+ 
++
+   if os(windows)
+     build-depends: Win32 >= 2.3.0.0 && < 2.14
+   else
diff --git a/patches/liquid-fixpoint-0.9.2.5.patch b/patches/liquid-fixpoint-0.9.2.5.patch
new file mode 100644
index 00000000..4cbd50b5
--- /dev/null
+++ b/patches/liquid-fixpoint-0.9.2.5.patch
@@ -0,0 +1,126 @@
+diff --git a/liquid-fixpoint.cabal b/liquid-fixpoint.cabal
+index 26783f4..8070349 100644
+--- a/liquid-fixpoint.cabal
++++ b/liquid-fixpoint.cabal
+@@ -156,7 +156,7 @@ library
+                   , smtlib-backends-process >= 0.3
+                   , stm
+                   , store
+-                  , vector < 0.13
++                  , vector < 0.14
+                   , syb
+                   , text
+                   , transformers
+diff --git a/src/Language/Fixpoint/Defunctionalize.hs b/src/Language/Fixpoint/Defunctionalize.hs
+index 37473aa..714dc28 100644
+--- a/src/Language/Fixpoint/Defunctionalize.hs
++++ b/src/Language/Fixpoint/Defunctionalize.hs
+@@ -34,6 +34,7 @@ import qualified Language.Fixpoint.Types           as Types (GInfo(..))
+ import           Language.Fixpoint.Types.Config
+ import           Language.Fixpoint.Types.Visitor   (mapMExpr)
+ -- import Debug.Trace (trace)
++import Control.Monad
+ 
+ defunctionalize :: (Fixpoint a) => Config -> SInfo a -> SInfo a
+ defunctionalize cfg si = evalState (defunc si) (makeInitDFState cfg si)
+diff --git a/src/Language/Fixpoint/Parse.hs b/src/Language/Fixpoint/Parse.hs
+index 0596179..c51ebe5 100644
+--- a/src/Language/Fixpoint/Parse.hs
++++ b/src/Language/Fixpoint/Parse.hs
+@@ -127,6 +127,7 @@ import qualified Language.Fixpoint.Types     as Types (GInfo(FI))
+ import           Text.PrettyPrint.HughesPJ         (text, vcat, (<+>), Doc)
+ 
+ import Control.Monad.State
++import Control.Monad
+ 
+ -- import Debug.Trace
+ 
+diff --git a/src/Language/Fixpoint/Solver/Instantiate.hs b/src/Language/Fixpoint/Solver/Instantiate.hs
+index 8199295..4c9effe 100644
+--- a/src/Language/Fixpoint/Solver/Instantiate.hs
++++ b/src/Language/Fixpoint/Solver/Instantiate.hs
+@@ -43,6 +43,7 @@ import qualified Data.HashSet         as S
+ import qualified Data.List            as L
+ import qualified Data.Maybe           as Mb -- (isNothing, catMaybes, fromMaybe)
+ import           Data.Char            (isUpper)
++import Control.Monad
+ -- import           Debug.Trace          (trace)
+ -- import           Text.Printf (printf)
+ 
+diff --git a/src/Language/Fixpoint/Solver/Interpreter.hs b/src/Language/Fixpoint/Solver/Interpreter.hs
+index 4666ca2..8a721f5 100644
+--- a/src/Language/Fixpoint/Solver/Interpreter.hs
++++ b/src/Language/Fixpoint/Solver/Interpreter.hs
+@@ -47,6 +47,7 @@ import qualified Data.HashSet         as S
+ import qualified Data.List            as L
+ import qualified Data.Maybe           as Mb
+ --import           Debug.Trace                              (trace)
++import Control.Monad
+ 
+ mytracepp :: (PPrint a) => String -> a -> a
+ mytracepp = notracepp
+diff --git a/src/Language/Fixpoint/Solver/Monad.hs b/src/Language/Fixpoint/Solver/Monad.hs
+index 6e2456e..ca80811 100644
+--- a/src/Language/Fixpoint/Solver/Monad.hs
++++ b/src/Language/Fixpoint/Solver/Monad.hs
+@@ -53,6 +53,7 @@ import           Control.Monad.State.Strict
+ import qualified Data.HashMap.Strict as M
+ import           Data.Maybe (catMaybes)
+ import           Control.Exception.Base (bracket)
++import Control.Monad
+ 
+ --------------------------------------------------------------------------------
+ -- | Solver Monadic API --------------------------------------------------------
+diff --git a/src/Language/Fixpoint/Solver/PLE.hs b/src/Language/Fixpoint/Solver/PLE.hs
+index 95d2078..a566ee1 100644
+--- a/src/Language/Fixpoint/Solver/PLE.hs
++++ b/src/Language/Fixpoint/Solver/PLE.hs
+@@ -65,6 +65,7 @@ import qualified Data.Map as Map
+ import qualified Data.Maybe           as Mb
+ import qualified Data.Set as Set
+ import           Text.PrettyPrint.HughesPJ.Compat
++import Control.Monad
+ 
+ mytracepp :: (PPrint a) => String -> a -> a
+ mytracepp = notracepp
+diff --git a/src/Language/Fixpoint/Solver/Rewrite.hs b/src/Language/Fixpoint/Solver/Rewrite.hs
+index 8d412d3..d5b3657 100644
+--- a/src/Language/Fixpoint/Solver/Rewrite.hs
++++ b/src/Language/Fixpoint/Solver/Rewrite.hs
+@@ -21,7 +21,6 @@ module Language.Fixpoint.Solver.Rewrite
+   , RESTOrdering(..)
+   ) where
+ 
+-import           Control.Monad.State (guard)
+ import           Control.Monad.Trans.Maybe
+ import           Data.Hashable
+ import qualified Data.HashMap.Strict  as M
+@@ -41,6 +40,7 @@ import           Language.REST.Op
+ import           Language.REST.SMT (SMTExpr)
+ import           Language.REST.WQOConstraints.ADT (ConstraintsADT, adtOC)
+ import qualified Language.REST.RuntimeTerm as RT
++import Control.Monad
+ 
+ -- | @(e, f)@ asserts that @e@ is a subexpression of @f e@
+ type SubExpr = (Expr, Expr -> Expr)
+diff --git a/src/Language/Fixpoint/SortCheck.hs b/src/Language/Fixpoint/SortCheck.hs
+index 8b794d5..b7cd9d6 100644
+--- a/src/Language/Fixpoint/SortCheck.hs
++++ b/src/Language/Fixpoint/SortCheck.hs
+@@ -70,7 +70,7 @@ module Language.Fixpoint.SortCheck  (
+ --  import           Control.DeepSeq
+ import           Control.Exception (Exception, catch, try, throwIO)
+ import           Control.Monad
+-import           Control.Monad.Except      -- (MonadError(..))
++import           Control.Monad.Except (MonadError(..))
+ import           Control.Monad.Reader
+ 
+ import qualified Data.HashMap.Strict       as M
+@@ -89,6 +89,7 @@ import           Text.Printf
+ import           GHC.Stack
+ import qualified Language.Fixpoint.Types as F
+ import           System.IO.Unsafe (unsafePerformIO)
++import Control.Monad
+ 
+ --import Debug.Trace as Debug
+ 
-- 
GitLab