anchor.diff:  
       build_bin() {
         crate_name=$1
  -      crate_name_=$(echo $crate_name | sed -e "s/-/_/g")
  +      crate_name_=$(echo $crate_name | tr '-' '_')
         main_file=""
         if [[ ! -z $2 ]]; then
           main_file=$2
  
positive.code: 
  
      EXTRA_LIB=""
      CRATE_NAME=$(echo ${libName} | sed -e "s/-/_/g")
  
      if [[ -e target/link_ ]]; then
        EXTRA_BUILD="$(cat target/link_) $EXTRA_BUILD"
  
negative.code:         # https://github.com/rust-lang/cargo/blob/90fc9f620190d5fa3c80b0c8c65a1e1361e6b8ae/src/cargo/util/toml/targets.rs#L308-L325
  
          # the first two cases are the "new" default IIRC
          BIN_NAME_=$(echo $BIN_NAME | tr '-' '_')
          FILES=( "src/bin/$BIN_NAME.rs" "src/bin/$BIN_NAME/main.rs" "src/bin/$BIN_NAME_.rs" "src/bin/$BIN_NAME_/main.rs" "src/bin/main.rs" "src/main.rs" )
  
          if ! [ -e "${libPath}" -o -e src/lib.rs -o -e "src/${libName}.rs" ]; then
  