anchor.diff:  
   The following ``cacheType``s are supported:
   
  -* `JUST_IN_TIME` (default): Not cached. Construct each selection (``Move``, ...) just before it's used. This scales up well in memory footprint.
  -* ``STEP``: Cached. Create each selection (``Move``, ...) at the beginning of a step and cache them in a list for the remainder of the step. This scales up badly in memory footprint.
  -* ``PHASE``: Cached. Create each selection (``Move``, ...) at the beginning of a solver phase and cache them in a list for the remainder of the phase. Some selections cannot be phase cached because the list changes every step. This scales up badly in memory footprint, but has a slight performance gain.
  -* ``SOLVER``: Cached. Create each selection (``Move``, ...) at the beginning of a `Solver` and cache them in a list for the remainder of the ``Solver``. Some selections cannot be solver cached because the list changes every step. This scales up badly in memory footprint, but has a slight performance gain.
  +* `JUST_IN_TIME` (default, recommended): Not cached. Construct each selection (``Move``, ...) just before it's used.
  +This scales up well in memory footprint.
  +* ``STEP``: Cached. Create each selection (``Move``, ...) at the beginning of a step and cache them in a list for the remainder of the step.
  +This scales up badly in memory footprint.
  +* ``PHASE``: Cached. Create each selection (``Move``, ...) at the beginning of a solver phase and cache them in a list for the remainder of the phase. Some selections cannot be phase cached because the list changes every step.
  +This scales up badly in memory footprint, but has a slight performance gain.
  +* ``SOLVER``: Cached. Create each selection (``Move``, ...) at the beginning of a `Solver` and cache them in a list for the remainder of the ``Solver``. Some selections cannot be solver cached because the list changes every step.
  +This scales up badly in memory footprint, but has a slight performance gain.
   
   A `cacheType` can be set on composite selectors too:
   
  
positive.code: Although `subChainChangeMoveSelector` and `subChainSwapMoveSelector` include almost every possible ``tailChainSwapMove``, experiments have shown that focusing on ``tailChainSwapMove``s increases efficiency.
  ====
  
  
  [[subChainChangeMoveSelector]]
  === subChainChangeMoveSelector (chained variables only)
  
negative.code: ====
  
  The other properties are explained in <<changeMoveSelector,changeMoveSelector>>.
  This move selector does not support <<cacheType,phase or solver caching>>
  and step caching scales badly memory wise.
  
  
  [[pillarSwapMoveSelector]]
  