@@ -95,7 +95,7 @@ that tracks the set of keys stored in the map, in order to
9595statically ensure the safety of lookups.
9696
9797\n ewthought{Types} First, we need a type for `Map`s. As usual,
98- lets parameterize the type with `k` for the type of keys and
98+ let's parameterize the type with `k` for the type of keys and
9999`v` for the type of values:
100100
101101~~~~~{.spec}
@@ -160,7 +160,7 @@ Using Maps: Well Scoped Expressions
160160-----------------------------------
161161
162162Rather than jumping into the *implementation* of the above `Map` API,
163- lets write a *client* that uses `Map`s to implement an interpreter for
163+ let's write a *client* that uses `Map`s to implement an interpreter for
164164a tiny language. In particular, we will use maps as an *environment*
165165containing the values of *bound variables*, and we will use the refined
166166API to ensure that *lookups never fail*, and hence, that well-scoped
@@ -351,11 +351,11 @@ Implementing Maps: Binary Search Trees {#lemmas}
351351We just saw how easy it is to * use* the Associative
352352Map [API ](# mapapi) to ensure the safety of lookups,
353353even though the `Map ` has a " dynamically" generated
354- set of keys. Next , lets see how we can * implement*
354+ set of keys. Next , let's see how we can * implement*
355355a `Map ` library that respects the API using
356356[Binary Search Trees ](# binarysearchtree)
357357
358- \ newthought{Data Type } First , lets provide an
358+ \ newthought{Data Type } First , let's provide an
359359implementation of the hitherto abstract data
360360type for `Map `. We shall use Binary Search Trees ,
361361wherein, at each `Node `, the `left` (resp. `right` )
@@ -424,7 +424,7 @@ set k' v' (Node k v l r)
424424set k' v' Tip = Node k' v' Tip Tip
425425\ end{code}
426426
427- \ newthought{Lookup } Next , lets write the `mem` function that returns
427+ \ newthought{Lookup } Next , let's write the `mem` function that returns
428428the value associated with a key `k'` . To do so we just compare `k'`
429429with the root key, if they are equal, we return the binding, and
430430otherwise we go down the `left` (resp. `right` ) subtree if sought for
@@ -445,7 +445,7 @@ get' _ Tip = die "Lookup Never Fails"
445445\ newthought{Unfortunately } the function above is * rejected*
446446by LiquidHaskell . This is a puzzler (and a bummer! ) because
447447in fact it * is* correct. So what gives?
448- Well , lets look at the error for the call `get' k' l`
448+ Well , let's look at the error for the call `get' k' l`
449449
450450~~~~~ {. liquiderror}
451451 src/ 07 - case - study- associative- maps. lhs: 411 : 25 : Error : Liquid Type Mismatch
@@ -461,7 +461,7 @@ Well, lets look at the error for the call `get' k' l`
461461~~~~~
462462
463463\ noindent LiquidHaskell is * unable* to deduce that the key `k'`
464- definitely belongs in the `left` subtree `l` . Well , lets ask ourselves:
464+ definitely belongs in the `left` subtree `l` . Well , let's ask ourselves:
465465* why* must `k'` belong in the left subtree? From the input, we know
466466`HasKey k' m` i. e. that `k'` is * somewhere* in `m` .
467467That is * one of * the following holds:
0 commit comments