::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:
method ENCODE.PHONE:  Determine phone number encodings.

change Map..Heap..string       :Dictionary map from number -> {code, ...}

 entry Number   string,        &Original phone number for display.
       Digit    string,        &Phone number digits before the prefix.
       Encode   string,        &Encoded name so far.
       Index    word           :Index past the the prefix.

  exit Hit      Bit            :Set if any partial matches.

 local Tail     string,        &Remaining digits to match
       I        word           :Index past encoded digits,
:
:...............................................................................


Tail = erase( Digit, Index - 1 );     Remaining digits to match.

DO @Pair  from Partial( $, Tail ):    DO over partial matches to the digits,
   DO Code  from  Pair`Tag:              DO over code word encodings,
      IF Encode$:                           IF any prior encoding,
         Code = Encode$ ! " " ! Code;          Add a code word.
      .

      I = Index + length( Pair`Key );       Index past digits consumed.

      IF I > length( Digit ):               IF all consumed,
         PRINT  Number ! ":", Code;            Phone number with encoding

      ELSE:                                 ELSE more trailing digits,
         ENCODE.PHONE  $, Number, Digit,      &Encode with trailing digits.
                       Code, I, Hit

         IF Hit = 0:                           IF no encoding,
            Code != " " ! byte{ Digit, I };       Encode with lead digit.

            IF I = length( Digit ):               IF one last digit,
               PRINT  Number ! ":", Code;            Phone numbers with encoding

            ELSE:                                 ELSE no full encoding,
               ENCODE.PHONE  $, Number, Digit,      &Encode with a lead digit.
                             Code, I + 1, Hit
   -  .  .  .

   Hit = 1;                              Exact encoding so always hit.
-

return