name_conflicts() {
  is_met() {
    [[ -z $foo ]] && [[ -z $bar ]]
  }

  one() {
    is_met() {
      [[ ! -z $foo ]]
    }

    meet() {
      foo=42
    }
  }

  two() {
    is_met() {
      [[ ! -z $bar ]]
    }

    meet() {
      bar=42
    }
  }

  require one
  require two
}

name_conflicts() {
  is_met() {
    [[ -z $foo ]] && [[ -z $bar ]]
  }

  one() {
    is_met() {
      [[ -z $bar ]] && [[ ! -z $foo ]]
    }

    meet() {
      foo=42
    }
  }

  two() {
    is_met() {
      [[ -z $foo ]] && [[ ! -z $bar ]]
    }

    meet() {
      bar=42
    }
  }

  require one
  require two
}

Improve name conflict tests (further)
Improve name conflict tests (further)
