blob: 1318d16b24e513e2c59e166bd71f50297c5b7d38 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
[[!comment format=mdwn
username="https://www.joachim-breitner.de/"
nickname="nomeata"
avatar="http://cdn.libravatar.org/avatar/a2112893817513537c6a2c228c04c138a2f68bba57121ab7f267de58fc5171d7"
subject="comment 3"
date="2017-05-07T03:19:14Z"
content="""
Still not good, I think, as the instance `Hashable Hash` has `hash = id`, so
```
hash Nothing = hash () = id (hash ()) = hash (Just (hash ())
```
and we have a collision at type `Maybe Hash`.
What would work is to do the same that `Hashable []` does, i.e. has the hash again:
```
hash (Just v) = hash (val (hashValue v))
hash Nothing = hash (mempty :: B.ByteString)
```
"""]]
|