Skip to content

Commit 51f6734

Browse files
committed
Type.Type: rm Name in favour Expr.Types.VarName
1 parent 62459ec commit 51f6734

File tree

3 files changed

+19
-19
lines changed

3 files changed

+19
-19
lines changed

src/Nix/Type/Assumption.hs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,10 @@ import Prelude hiding ( Type
1818
, empty
1919
)
2020

21+
import Nix.Expr
2122
import Nix.Type.Type
2223

23-
newtype Assumption = Assumption { assumptions :: [(Name, Type)] }
24+
newtype Assumption = Assumption { assumptions :: [(VarName, Type)] }
2425
deriving (Eq, Show)
2526

2627
-- We pretend that Assumptions can be inconsistent (nonunique keys),
@@ -33,25 +34,25 @@ instance Monoid Assumption where
3334
mempty = empty
3435

3536
instance One Assumption where
36-
type OneItem Assumption = (Name, Type)
37+
type OneItem Assumption = (VarName, Type)
3738
one (x, y) = Assumption [(x, y)]
3839

3940
empty :: Assumption
4041
empty = Assumption mempty
4142

42-
extend :: Assumption -> (Name, Type) -> Assumption
43+
extend :: Assumption -> (VarName, Type) -> Assumption
4344
extend (Assumption a) (x, s) =
4445
Assumption $
4546
(x, s) : a
4647

47-
remove :: Assumption -> Name -> Assumption
48+
remove :: Assumption -> VarName -> Assumption
4849
remove (Assumption a) var =
4950
Assumption $
5051
filter
5152
(\(n, _) -> n /= var)
5253
a
5354

54-
lookup :: Name -> Assumption -> [Type]
55+
lookup :: VarName -> Assumption -> [Type]
5556
lookup key (Assumption a) =
5657
snd <$>
5758
filter
@@ -65,8 +66,8 @@ merge (Assumption a) (Assumption b) =
6566
mergeAssumptions :: [Assumption] -> Assumption
6667
mergeAssumptions = foldl' (<>) mempty
6768

68-
singleton :: Name -> Type -> Assumption
69+
singleton :: VarName -> Type -> Assumption
6970
singleton x y = Assumption [(x, y)]
7071

71-
keys :: Assumption -> [Name]
72+
keys :: Assumption -> [VarName]
7273
keys (Assumption a) = fst <$> a

src/Nix/Type/Env.hs

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,15 @@ import Prelude hiding ( empty
2020
, fromList
2121
)
2222

23+
import Nix.Expr.Types
2324
import Nix.Type.Type
2425

2526
import qualified Data.Map as Map
2627

2728

2829
-- * Typing Environment
2930

30-
newtype Env = TypeEnv (Map.Map Name [Scheme])
31+
newtype Env = TypeEnv (Map.Map VarName [Scheme])
3132
deriving (Eq, Show)
3233

3334
instance Semigroup Env where
@@ -39,22 +40,22 @@ instance Monoid Env where
3940
mempty = empty
4041

4142
instance One Env where
42-
type OneItem Env = (Name, Scheme)
43+
type OneItem Env = (VarName, Scheme)
4344
one = uncurry singleton
4445

4546
empty :: Env
4647
empty = TypeEnv mempty
4748

48-
extend :: Env -> (Name, [Scheme]) -> Env
49+
extend :: Env -> (VarName, [Scheme]) -> Env
4950
extend env (x, s) = TypeEnv $ Map.insert x s $ coerce env
5051

51-
remove :: Env -> Name -> Env
52+
remove :: Env -> VarName -> Env
5253
remove (TypeEnv env) var = TypeEnv $ Map.delete var env
5354

54-
extends :: Env -> [(Name, [Scheme])] -> Env
55+
extends :: Env -> [(VarName, [Scheme])] -> Env
5556
extends env xs = TypeEnv $ Map.fromList xs <> coerce env
5657

57-
lookup :: Name -> Env -> Maybe [Scheme]
58+
lookup :: VarName -> Env -> Maybe [Scheme]
5859
lookup key (TypeEnv tys) = Map.lookup key tys
5960

6061
merge :: Env -> Env -> Env
@@ -66,15 +67,15 @@ mergeRight (TypeEnv a) (TypeEnv b) = TypeEnv $ b <> a
6667
mergeEnvs :: [Env] -> Env
6768
mergeEnvs = foldl' (<>) mempty
6869

69-
singleton :: Name -> Scheme -> Env
70+
singleton :: VarName -> Scheme -> Env
7071
singleton x y = TypeEnv $ one (x, [y])
7172

72-
keys :: Env -> [Name]
73+
keys :: Env -> [VarName]
7374
keys (TypeEnv env) = Map.keys env
7475

75-
fromList :: [(Name, [Scheme])] -> Env
76+
fromList :: [(VarName, [Scheme])] -> Env
7677
fromList xs = TypeEnv $ Map.fromList xs
7778

78-
toList :: Env -> [(Name, [Scheme])]
79+
toList :: Env -> [(VarName, [Scheme])]
7980
toList (TypeEnv env) = Map.toList env
8081

src/Nix/Type/Type.hs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ import Prelude hiding ( Type, TVar )
77
import Data.Foldable ( foldr1 )
88
import Nix.Utils ( AttrSet )
99

10-
type Name = Text
11-
1210
-- | Hindrey-Milner type interface
1311

1412
-- | Type variable in the Nix type system.

0 commit comments

Comments
 (0)