summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--doc/protocol/comment_3_6338e14886f146eb5d2f9c9316e1f7de._comment22
1 files changed, 22 insertions, 0 deletions
diff --git a/doc/protocol/comment_3_6338e14886f146eb5d2f9c9316e1f7de._comment b/doc/protocol/comment_3_6338e14886f146eb5d2f9c9316e1f7de._comment
new file mode 100644
index 0000000..657a20a
--- /dev/null
+++ b/doc/protocol/comment_3_6338e14886f146eb5d2f9c9316e1f7de._comment
@@ -0,0 +1,22 @@
+[[!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:20:38Z"
+ 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)
+
+"""]]