whole_func_string: function addOptions(first, second) {
      var first = first.split('');
      var second = second.split('');
      var fin = first.slice(-1)[0];
      if (inc(c.consonants, fin)) fin = '';
      var penult = first.slice(-2)[0];
      var beg = second[0];
      var opt;
      var candra;
      if (fin == c.virama) { //  && inc(c.hal, beg)
          var vir = false;
          candra = false;
          if (fin == c.virama) {
              first.pop();
              fin = first.slice(-1)[0];
              penult = first.slice(-2)[0];
              vir = true;
          }
          else if (fin == c.candra) {
              first.pop();
              fin = first.slice(-1)[0];
              candra = true;
          }
          var opt = {type: 'cons', first: first, fin: fin, vir: vir, second: second, beg: beg, pen: penult};
          if (vir) opt.vir = true;
          if (candra) opt.candra = true;
          if (beg == c.oM) {
              opt.second.shift();
              opt.oM = true;
          }
      } else if ((inc(c.consonants, fin) || inc(c.allligas, fin)) && inc(c.allvowels, beg)) {
          opt = {type: 'vowel', first: first, fin: fin, second: second, beg: beg};
      } else if (fin == c.visarga) {
          first.pop();
          fin = u.last(first)[0];
          opt = {type: 'visarga', first: first, fin: fin, second: second, beg: beg};
      }
      return opt;
  }
func_code_string: function addOptions(first, second) {
      var first = first.split('');
      var second = second.split('');
      var fin = first.slice(-1)[0];
      if (inc(c.consonants, fin)) fin = '';
      var penult = first.slice(-2)[0];
      var beg = second[0];
      var opt;
      var candra;
      if (fin == c.virama) { //  && inc(c.hal, beg)
          var vir = false;
          candra = false;
          if (fin == c.virama) {
              first.pop();
              fin = first.slice(-1)[0];
              penult = first.slice(-2)[0];
              vir = true;
          }
          else if (fin == c.candra) {
              first.pop();
              fin = first.slice(-1)[0];
              candra = true;
          }
          var opt = {type: 'cons', first: first, fin: fin, vir: vir, second: second, beg: beg, pen: penult};
          if (vir) opt.vir = true;
          if (candra) opt.candra = true;
          if (beg == c.oM) {
              opt.second.shift();
              opt.oM = true;
          }
      } else if ((inc(c.consonants, fin) || inc(c.allligas, fin)) && inc(c.allvowels, beg)) {
          opt = {type: 'vowel', first: first, fin: fin, second: second, beg: beg};
      } else if (fin == c.visarga) {
          first.pop();
          fin = u.last(first)[0];
          opt = {type: 'visarga', first: first, fin: fin, second: second, beg: beg};
      }
      return opt;
  }
func_documentation_string: ============ ADD ========== TODO: will be completely rewritten: