:= { provider : Str, version : U64, reference : Str }
is_eq : _
checked : Str, U64, Str, (Str -> Try({}, Str)) -> Try(ProviderSource, Str)
provider : ProviderSource -> Str
version : ProviderSource -> U64
reference : ProviderSource -> Str