Skip to content

Commit 93d53bf

Browse files
committed
move instances Monad{,Atomic}Ref Fix1T to the parent
1 parent dea7f7e commit 93d53bf

File tree

2 files changed

+22
-14
lines changed

2 files changed

+22
-14
lines changed

src/Nix/Standard.hs

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
1+
{-# LANGUAGE TypeFamilies #-}
2+
{-# LANGUAGE KindSignatures #-}
13
{-# LANGUAGE CPP #-}
2-
{-# LANGUAGE ConstraintKinds #-}
34
{-# LANGUAGE DeriveFoldable #-}
45
{-# LANGUAGE DeriveFunctor #-}
56
{-# LANGUAGE DeriveGeneric #-}
67
{-# LANGUAGE DeriveTraversable #-}
7-
{-# LANGUAGE FlexibleContexts #-}
88
{-# LANGUAGE FlexibleInstances #-}
99
{-# LANGUAGE MultiParamTypeClasses #-}
1010
{-# LANGUAGE ScopedTypeVariables #-}
1111
{-# LANGUAGE TypeApplications #-}
12-
{-# LANGUAGE TypeFamilies #-}
1312
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
1413
{-# LANGUAGE UndecidableInstances #-}
1514

@@ -53,17 +52,6 @@ import Nix.Value.Monad
5352
import Nix.Var
5453

5554

56-
type MonadFix1T t m = (MonadTrans (Fix1T t), Monad (t (Fix1T t m) m))
57-
58-
instance (MonadFix1T t m, MonadRef m) => MonadRef (Fix1T t m) where
59-
type Ref (Fix1T t m) = Ref m
60-
newRef = lift . newRef
61-
readRef = lift . readRef
62-
writeRef r = lift . writeRef r
63-
64-
instance (MonadFix1T t m, MonadAtomicRef m) => MonadAtomicRef (Fix1T t m) where
65-
atomicModifyRef r = lift . atomicModifyRef r
66-
6755
instance (MonadFix1T t m, MonadFail (Fix1T t m), MonadFile m) => MonadFile (Fix1T t m)
6856

6957
instance (MonadFix1T t m, MonadStore m) => MonadStore (Fix1T t m) where

src/Nix/Utils/Fix1.hs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
{-# LANGUAGE TypeFamilies #-}
2+
{-# LANGUAGE ConstraintKinds #-}
3+
{-# LANGUAGE FlexibleContexts #-}
14
{-# LANGUAGE CPP #-}
25
{-# LANGUAGE FlexibleInstances #-}
36
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
@@ -16,6 +19,10 @@ import Control.Monad.Fail
1619
import Control.Monad ( MonadPlus )
1720
import Control.Monad.Fix ( MonadFix )
1821
import Control.Monad.IO.Class ( MonadIO )
22+
import Control.Monad.Trans.Class ( MonadTrans
23+
, lift )
24+
import Control.Monad.Ref ( MonadAtomicRef(..)
25+
, MonadRef(..) )
1926
import Control.Monad.Catch ( MonadCatch
2027
, MonadMask
2128
, MonadThrow )
@@ -57,6 +64,19 @@ deriving instance MonadMask (t (Fix1T t m) m) => MonadMask (Fix1T t m)
5764
deriving instance MonadReader e (t (Fix1T t m) m) => MonadReader e (Fix1T t m)
5865
deriving instance MonadState s (t (Fix1T t m) m) => MonadState s (Fix1T t m)
5966

67+
68+
type MonadFix1T t m = (MonadTrans (Fix1T t), Monad (t (Fix1T t m) m))
69+
70+
instance (MonadFix1T t m, MonadRef m) => MonadRef (Fix1T t m) where
71+
type Ref (Fix1T t m) = Ref m
72+
newRef = lift . newRef
73+
readRef = lift . readRef
74+
writeRef r = lift . writeRef r
75+
76+
77+
instance (MonadFix1T t m, MonadAtomicRef m) => MonadAtomicRef (Fix1T t m) where
78+
atomicModifyRef r = lift . atomicModifyRef r
79+
6080
{-
6181
6282
newtype Flip (f :: i -> j -> *) (a :: j) (b :: i) = Flip { unFlip :: f b a }

0 commit comments

Comments
 (0)