We’ll start by defining separate data types (each with just one value) to represent left and right parentheses, respectively. The names of the types are lparen and rparen. Each has a single value that we will call mk. We can use qualified names to distinguish these values: lparen.mk and rparen.mk.
To something more like
We’ll start by defining two data types. The names of the types are lparen and rparen. We use these to represent left and right parentheses, respectively. Each holds a single value inside it that we will label as mk. We can use qualified names to distinguish between the two types' differing mk values: lparen.mk and rparen.mk.
Clarifying this sentence
Second, if b is any balanced string, then the term mk_nonempty l b r is also (that is also represents) a balanced string, namely (b)
to something along the lines of
Second, if b is any balanced string, then the term mk_nonempty l b r is also a balanced string. What that represents is taking the existing string b and combining it with a left parenthesis l and a right parenthesis r. In other words, it represents turning b into (b)
Possible terms to remove or de-emphasize?
Writing Clarification Suggestions
2.1.3
Clarifying this paragraph
To something more like
Clarifying this sentence
to something along the lines of