Removing an instance of typeclass and package version policy

I was asked to abandon my dependency on system-filepath .

My package defines typeclass Arguable and defines an instance for type Filesystem.Path FilePath . No system-filepath means no Filesystem.Path means no FilePath , so, dropping this dependency, I would change my API to no longer provide an Arguable instance.

How is this related to PVP? Is this a change to the main version?

+5
source share
1 answer

Yes, this is a major version change. The Haskell wiki page on the PVP contains information about ABC version numbers (the corresponding phrase is shown in bold):

  • If any object was deleted or the types of any entities were changed or the definitions of data types or classes were added, or instances of an orphan were added, or any instances were deleted , then the new AB must be larger than the previous AB versions of another package may result in additional orphan instances being exported, and thus major versions will be changed.
  • Otherwise, if only new bindings, types, classes, non-orphans or modules were added to the interface (but see below), then AB can remain the same, but the new C should be larger than the old C. Note that the change import, or depending on a newer version of another package, may result in additional non-orphan instances being exported and thus minor versions will be changed.
  • Otherwise, ABC may remain unchanged (other version components may change).
+2
source

All Articles