Skip to content

Commit 0e7de85

Browse files
committed
Type.Env: add instance One Env
1 parent e39221b commit 0e7de85

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

ChangeLog.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,13 @@
1515
* added fun:
1616
* `evalContent`
1717
* `addMetaInfo`
18+
19+
* `Nix.Types.Assumption`:
20+
* added instances:
21+
* `Assumption`: `{Semigroup,Monoid,One}`
22+
* `Nix.Type.Env`:
23+
* added instances:
24+
* `Env`: `{Semigroup,Monoid,One}`
1825

1926

2027
### [(diff)](https://github.com/haskell-nix/hnix/compare/0.13.0.1...0.13.1#files_bucket) 0.13.1 (2021-05-22)

src/Nix/Type/Env.hs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
{-# LANGUAGE TypeFamilies #-}
12
module Nix.Type.Env
23
( Env(..)
34
, empty
@@ -35,14 +36,18 @@ instance Semigroup Env where
3536
instance Monoid Env where
3637
mempty = empty
3738

39+
instance One Env where
40+
type OneItem Env = (Name, Scheme)
41+
one = uncurry singleton
42+
3843
empty :: Env
3944
empty = TypeEnv mempty
4045

4146
extend :: Env -> (Name, [Scheme]) -> Env
4247
extend env (x, s) = env { types = Map.insert x s (types env) }
4348

4449
remove :: Env -> Name -> Env
45-
remove (TypeEnv env) var = TypeEnv (Map.delete var env)
50+
remove (TypeEnv env) var = TypeEnv $ Map.delete var env
4651

4752
extends :: Env -> [(Name, [Scheme])] -> Env
4853
extends env xs = env { types = Map.fromList xs `Map.union` types env }

0 commit comments

Comments
 (0)