anchor.diff:      String.iter (fun c -> Array.set ctable (int c) 16) alphas
       String.iter (fun c -> Array.set ctable (int c) 32) nums
       ctable
  +
  +/// Returns the ASCII code for the first (0th) character in a string.
  +let inline private charcode (s : string) =
  +//    #if DEBUG
  +//    if String.length s <> 1 then
  +//        logger.Debug ("NHol.printer.charcode: The string should contain exactly one (1) character, but it contains {0} characters. (s = {1})",
  +//            String.length s, s)
  +//    #endif
  +    // Note: In F# 65536 retuns 0, so the max is 65535 in F#.
  +    // int <| Checked.byte s.[0]
  +    int s.[0]
   
   /// Checks that a string contains exactly one (1) character,
   /// and raises an exception if otherwise.
  
positive.code: (* ------------------------------------------------------------------------- *)
  (* Character discrimination.                                                 *)
  (* ------------------------------------------------------------------------- *)
  
  /// Returns the ASCII code for the first (0th) character in a string.
  let inline private charcode (s : string) =
  //    #if DEBUG
  //    if String.length s <> 1 then
  //        logger.Debug ("NHol.printer.charcode: The string should contain exactly one (1) character, but it contains {0} characters. (s = {1})",
  //            String.length s, s)
  //    #endif
      // Note: In F# 65536 retuns 0, so the max is 65535 in F#.
      int s.[0]
  
  //
  let private ctable =
  
negative.code:     
      let ctable =
          let inline maxAsciiCode str =
              // OPTIMIZE : Use String.mapReduce from a future version of ExtCore, instead of String.fold.
              String.fold (fun x c -> max x (int c)) 0 str
  
          maxAsciiCode spaces
  