func ParseVersion(str string) (Version, error) {
	return versions.ParseVersion(str)
}
ParseVersion parses a "semver"-style version string into a Version value,
which is the version syntax we use for provider versions.
package getproviders
import (
	"fmt"
	"runtime"
	"sort"
	"strings"
	"github.com/apparentlymart/go-versions/versions"
	"github.com/apparentlymart/go-versions/versions/constraints"
	"github.com/camptocamp/terraboard/internal/terraform/addrs"
)
type Version = versions.Version
var UnspecifiedVersion Version = versions.Unspecified
type VersionList = versions.List
type VersionSet = versions.Set
type VersionConstraints = constraints.IntersectionSpec
type Warnings = []string
type Requirements map[addrs.Provider]VersionConstraints
func (r Requirements) Merge(other Requirements) Requirements {
	ret := make(Requirements)
	for addr, constraints := range r {
		ret[addr] = constraints
	}
	for addr, constraints := range other {
		ret[addr] = append(ret[addr], constraints...)
	}
	return ret
}
type Selections map[addrs.Provider]Version