1
1
# Developer Guide
2
2
3
3
This guide is meant as an entry point for developer. It both gives the
4
- philisophy behind the design of this package and some concrete details, such as
4
+ philosophy behind the design of this package and some concrete details, such as
5
5
invariants.
6
6
7
7
## Why does this package exist?
@@ -10,7 +10,7 @@ This package exists to offer a different performance/functionality
10
10
trade-off vis-a-vis ordered container packages
11
11
(e.g. [ containers] ( http://hackage.haskell.org/package/containers ) ). Hashing-based
12
12
data structures tend to be faster than comparison-based ones, at the cost of not
13
- providing operations the rely on the data being ordered.
13
+ providing operations that rely on the data being ordered.
14
14
15
15
This means that this package must be faster than ordered containers, or there
16
16
would be no reason for it to exist, given that its functionality is a strict
@@ -27,7 +27,7 @@ support this package and not to provide good general purpose hash functions
27
27
(e.g. to use when fingerprinting a text file).
28
28
29
29
The hash functions used (by default) were picked to make data structures
30
- fast. The actual functions used oftens surprise developers who have learned
30
+ fast. The actual functions used often surprise developers who have learned
31
31
about hashing during their studies but haven't looked at which functions are
32
32
actually used in practice.
33
33
@@ -41,7 +41,7 @@ improved locality can be helpful given common input patterns.
41
41
42
42
Another interesting example of hashing is string hashing, where
43
43
[ FNV] ( https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function )
44
- is used. FNV is a decent hash function, but hash worse properties than say
44
+ is used. FNV is a decent hash function, but has worse properties than say
45
45
[ MurmurHash] ( https://en.wikipedia.org/wiki/MurmurHash ) . However, it's much
46
46
faster. The fact that it's faster is not obvious given the way hash function
47
47
performance is often quoted, namely by giving the average throughput on large
0 commit comments