Index: doc/working/resolver_design.md
===================================================================
--- doc/working/resolver_design.md (revision 2edd80ae7bb41eee0783cfcc80573f533b6ee760)
+++ doc/working/resolver_design.md (revision 275f4b41090b65cafa0ee962bc45569b0ea89354)
@@ -91,9 +91,15 @@
## Conversion Costs ##
Each possible resolution of an expression has a _cost_ tuple consisting of
-the following components: _unsafe_ conversion cost, _polymorphic_
-specialization cost, _safe_ conversion cost, a count of _explicit_
-conversions, and _qualifier_ conversion cost.
+the following components:
+1. _unsafe_ conversion cost: summed degree of unsafe conversions; unlike CFA03, this is not a simple count of conversions (for symmetry with the safe conversions)
+2. _polymorphic unifications_: count of parameters and return values bound to some polymorphic type for boxing
+3. _type variables_: number of polymorphic type variables bound
+4. negated _type specializations_: Each type assertion specializes the polymorphism, thus decreasing the cost; nested polymorphic types (e.g. `T*`) are also counted as specializations
+5. _safe_ conversions: summed degree of safe conversions
+6. _qualifier_ conversions: summed degree of qualifier and reference conversions
These components are lexically-ordered and can be summed element-wise;
summation starts at `(0, 0, 0, 0, 0)`.
+
+**TODO** update below for consistency with this
### Lvalue and Qualifier Conversions ###