0 | module Data.HashSet
 1 |
 2 | import Data.HashMap
 3 | import Data.Maybe
 4 |
 5 | export
 6 | record HashSet k where
 7 |     constructor MkHashSet
 8 |     hashmap: HashMap k ()
 9 |
10 | export
11 | empty : Hashable k => Eq k => HashSet k
12 | empty = MkHashSet empty
13 |
14 | export
15 | insert : Hashable k => Eq k => k -> HashSet k -> HashSet k
16 | insert k = { hashmap $= insert k () }
17 |
18 | export
19 | contains : Hashable k => Eq k => k -> HashSet k -> Bool
20 | contains k (MkHashSet hm) = isJust $ lookup k hm
21 |