on master help sign in
Support GHC 9 and switch default compiler (#97)
17c7c61Ollie Charles
Changelog.md+2
@@ -14,6 +14,8 @@
14
14
15* Require Opaleye 0.7.3.0. This version has better support for lateral queries, which can improve query plans, especially in `optional`/`LEFT JOIN` ([#72](https://github.com/circuithub/rel8/pull/72))
15* Require Opaleye 0.7.3.0. This version has better support for lateral queries, which can improve query plans, especially in `optional`/`LEFT JOIN` ([#72](https://github.com/circuithub/rel8/pull/72))
16
16
17+* Rel8 now compiles with GHC 9. ([#97](https://github.com/circuithub/rel8/pull/97))
18+
17## Other changes
19## Other changes
18
20
19* `exists` is now implemented in terms of the SQL `EXISTS` keyword. ([#69](https://github.com/circuithub/rel8/pull/69))
21* `exists` is now implemented in terms of the SQL `EXISTS` keyword. ([#69](https://github.com/circuithub/rel8/pull/69))
default.nix+4−4
@@ -1,15 +1,15 @@
1−let
1+let
2 haskellNix = import (import ./nix/sources.nix)."haskell.nix" {};
2 haskellNix = import (import ./nix/sources.nix)."haskell.nix" {};
3
3
4 nixpkgsSrc = haskellNix.sources.nixpkgs-2009;
4 nixpkgsSrc = haskellNix.sources.nixpkgs-2009;
5
5
6 nixpkgsArgs = haskellNix.nixpkgsArgs;
6 nixpkgsArgs = haskellNix.nixpkgsArgs;
7
7
8− compiler-nix-name = "ghc8104";
8+ compiler-nix-name = "ghc901";
9
9
10 pkgs = import nixpkgsSrc nixpkgsArgs;
10 pkgs = import nixpkgsSrc nixpkgsArgs;
11
11
12−in
12+in
13pkgs.haskell-nix.project {
13pkgs.haskell-nix.project {
14 inherit compiler-nix-name;
14 inherit compiler-nix-name;
15
15
@@ -20,7 +20,7 @@ pkgs.haskell-nix.project {
20 src = ./.;
20 src = ./.;
21 };
21 };
22
22
23− modules = [
23+ modules = [
24 { packages.rel8 = {
24 { packages.rel8 = {
25 preCheck = ''
25 preCheck = ''
26 export PATH="${pkgs.postgresql}/bin:${"$PATH"}"
26 export PATH="${pkgs.postgresql}/bin:${"$PATH"}"
shell.nix+1−1
@@ -5,7 +5,7 @@ let
5in
5in
6 hsPkgs.shellFor {
6 hsPkgs.shellFor {
7 withHoogle = false;
7 withHoogle = false;
8− tools = { cabal = "latest"; haskell-language-server = "latest"; };
8+ tools = { cabal = "latest"; };
9 exactDeps = false;
9 exactDeps = false;
10 buildInputs = [ pkgs.postgresql pkgs.pythonPackages.sphinx ];
10 buildInputs = [ pkgs.postgresql pkgs.pythonPackages.sphinx ];
11 }
11 }
src/Rel8/Generic/Table.hs+12−12
@@ -124,9 +124,9 @@ ggfromColumns :: forall algebra _Table _Columns rep context x.
124 -> (forall a. Eval (_Table a) => Eval (_Columns a) context -> a)
124 -> (forall a. Eval (_Table a) => Eval (_Columns a) context -> a)
125 -> Eval (GGColumns algebra _Columns rep) context
125 -> Eval (GGColumns algebra _Columns rep) context
126 -> rep x
126 -> rep x
127−ggfromColumns = case algebraSing @algebra of
127+ggfromColumns f g h x = case algebraSing @algebra of
128− SProduct -> \_ _ -> gfromColumns @_Table @_Columns
128+ SProduct -> gfromColumns @_Table @_Columns h x
129− SSum -> gfromColumnsADT @_Table @_Columns
129+ SSum -> gfromColumnsADT @_Table @_Columns f g h x
130
130
131
131
132ggtoColumns :: forall algebra _Table _Columns rep context x.
132ggtoColumns :: forall algebra _Table _Columns rep context x.
@@ -138,9 +138,9 @@ ggtoColumns :: forall algebra _Table _Columns rep context x.
138 -> (forall a. Eval (_Table a) => a -> Eval (_Columns a) context)
138 -> (forall a. Eval (_Table a) => a -> Eval (_Columns a) context)
139 -> rep x
139 -> rep x
140 -> Eval (GGColumns algebra _Columns rep) context
140 -> Eval (GGColumns algebra _Columns rep) context
141−ggtoColumns = case algebraSing @algebra of
141+ggtoColumns f g h x = case algebraSing @algebra of
142− SProduct -> \_ _ -> gtoColumns @_Table @_Columns
142+ SProduct -> gtoColumns @_Table @_Columns h x
143− SSum -> gtoColumnsADT @_Table @_Columns
143+ SSum -> gtoColumnsADT @_Table @_Columns f g h x
144
144
145
145
146ggtable :: forall algebra _Table _Columns rep context.
146ggtable :: forall algebra _Table _Columns rep context.
@@ -168,9 +168,9 @@ ggfromResult :: forall algebra _ToExprs _Columns exprs rep x.
168 -> a)
168 -> a)
169 -> Eval (GGColumns algebra _Columns exprs) (Col Result)
169 -> Eval (GGColumns algebra _Columns exprs) (Col Result)
170 -> rep x
170 -> rep x
171−ggfromResult = case algebraSing @algebra of
171+ggfromResult f x = case algebraSing @algebra of
172− SProduct -> gfromResult @_ToExprs @_Columns @exprs
172+ SProduct -> gfromResult @_ToExprs @_Columns @exprs f x
173− SSum -> gfromResultADT @_ToExprs @_Columns @exprs
173+ SSum -> gfromResultADT @_ToExprs @_Columns @exprs f x
174
174
175
175
176ggtoResult :: forall algebra _ToExprs _Columns exprs rep x.
176ggtoResult :: forall algebra _ToExprs _Columns exprs rep x.
@@ -183,6 +183,6 @@ ggtoResult :: forall algebra _ToExprs _Columns exprs rep x.
183 -> Eval (_Columns expr) (Col Result))
183 -> Eval (_Columns expr) (Col Result))
184 -> rep x
184 -> rep x
185 -> Eval (GGColumns algebra _Columns exprs) (Col Result)
185 -> Eval (GGColumns algebra _Columns exprs) (Col Result)
186−ggtoResult = case algebraSing @algebra of
186+ggtoResult f x = case algebraSing @algebra of
187− SProduct -> gtoResult @_ToExprs @_Columns @exprs
187+ SProduct -> gtoResult @_ToExprs @_Columns @exprs f x
188− SSum -> gtoResultADT @_ToExprs @_Columns @exprs
188+ SSum -> gtoResultADT @_ToExprs @_Columns @exprs f x