-type version() :: {non_neg_integer(), non_neg_integer(), non_neg_integer()}.
-spec compare(version(), version()) -> lt | eq | gt.
-spec in_range(string() | binary(), string() | binary()) -> boolean().
-spec parse(string() | binary()) -> {ok, version()} | error.