@@ -14,16 +14,11 @@
1414If `p` produces yes, `%.y`, then `q`. If `p` produces no, `%.n`, then `r`.
1515If `p` is not a boolean, compiler yells at you.
1616
17−The subjects of `q` and `r` are constrained to match any
18−pattern-matching algebra in `p`. The analysis, which is
19−conservative, understands any combination of [`?=` ("wuttis")](../tis/),
20−[`?&` ("wutpad")](../pad/), [`?|` ("wutbar")](../bar/), and
21−[`?!` ("wutzap")](../zap/), and reduces the subject appropriately when
22−compiling.
17+### Type inference
2318
24−If test analysis reveals that either branch is not taken,
25−or if `p` is not a boolean, compilation fails. However,
26−an untaken branch can be indicated with the `%lost` hoon.
19+The subject types of `q` and `r` are constrained to match any pattern-matching algebra in `p`. The analysis, which is conservative, understands any combination of [`?=`](../tis/), [`?&`](../pad/), [`?|`](../bar/), and [`?!`](../zap/), and infers the type of the subject appropriately when compiling.
20+
21+If test analysis reveals that either branch is never taken, or if `p` is not a boolean, compilation fails. An untaken branch is indicated with `mint-lost`.
2722
2823## Syntax
2924
@@ -36,7 +31,7 @@ and includes the expected inference. For instance,
3631if you write `?&(a b)`, `b` is only executed if `a` is
3732positive, and compiled with that assumption.
3833
39−Note also that all other branching hoons reduce to `?:`.
34+Note also that all other branching expressions reduce to `?:`.
4035
4136## Examples
4237