Skip to content

Commit af02e38

Browse files
committed
move instance Eq1 NValueF to the parent
1 parent 059bf3b commit af02e38

File tree

2 files changed

+10
-11
lines changed

2 files changed

+10
-11
lines changed

src/Nix/Value.hs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ import Control.Monad.Trans.Class ( MonadTrans, lift )
2727
import qualified Data.Aeson as A
2828
import Data.Functor.Classes ( Show1
2929
, liftShowsPrec
30-
, showsUnaryWith )
30+
, showsUnaryWith
31+
, Eq1(liftEq) )
3132
import Data.HashMap.Lazy ( HashMap )
3233
import Data.Text ( Text )
3334
import Data.Typeable ( Typeable )
@@ -96,6 +97,14 @@ instance Show r => Show (NValueF p m r) where
9697
showsCon1 con a d =
9798
showParen (d > 10) $ showString (con ++ " ") . showsPrec 11 a
9899

100+
instance Eq1 (NValueF p m) where
101+
liftEq _ (NVConstantF x) (NVConstantF y) = x == y
102+
liftEq _ (NVStrF x) (NVStrF y) = x == y
103+
liftEq eq (NVListF x) (NVListF y) = liftEq eq x y
104+
liftEq eq (NVSetF x _ ) (NVSetF y _ ) = liftEq eq x y
105+
liftEq _ (NVPathF x ) (NVPathF y ) = x == y
106+
liftEq _ _ _ = False
107+
99108
lmapNValueF :: Functor m => (b -> a) -> NValueF a m r -> NValueF b m r
100109
lmapNValueF f = \case
101110
NVConstantF a -> NVConstantF a

src/Nix/Value/Equal.hs

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
{-# LANGUAGE TypeApplications #-}
2020
{-# LANGUAGE TypeFamilies #-}
2121
{-# LANGUAGE TypeOperators #-}
22-
{-# LANGUAGE UndecidableInstances #-}
2322
{-# LANGUAGE ViewPatterns #-}
2423

2524

@@ -35,7 +34,6 @@ import Control.Monad.Trans.Class
3534
import Control.Monad.Trans.Except
3635
import Data.Align
3736
import Data.Eq.Deriving
38-
import Data.Functor.Classes
3937
import Data.Functor.Identity
4038
import qualified Data.HashMap.Lazy as M
4139
import Data.These
@@ -179,12 +177,4 @@ thunkEqM lt rt = force lt $ \lv -> force rt $ \rv ->
179177
(NVSet _ _ , NVSet _ _ ) -> unsafePtrEq
180178
_ -> valueEqM lv rv
181179

182-
instance Eq1 (NValueF p m) where
183-
liftEq _ (NVConstantF x) (NVConstantF y) = x == y
184-
liftEq _ (NVStrF x) (NVStrF y) = x == y
185-
liftEq eq (NVListF x) (NVListF y) = liftEq eq x y
186-
liftEq eq (NVSetF x _ ) (NVSetF y _ ) = liftEq eq x y
187-
liftEq _ (NVPathF x ) (NVPathF y ) = x == y
188-
liftEq _ _ _ = False
189-
190180
$(deriveEq1 ''NValue')

0 commit comments

Comments
 (0)