diff --git a/library/Salve.hs b/library/Salve.hs
--- a/library/Salve.hs
+++ b/library/Salve.hs
@@ -181,6 +181,10 @@
 isUnstable,
 isStable,
 
+-- * Conversions
+fromBaseVersion,
+toBaseVersion,
+
 -- * Helpers
 bumpMajor,
 bumpMinor,
diff --git a/library/Salve/Internal.hs b/library/Salve/Internal.hs
--- a/library/Salve/Internal.hs
+++ b/library/Salve/Internal.hs
@@ -9,6 +9,7 @@
 import qualified Data.Maybe as Maybe
 import qualified Data.Monoid as Monoid
 import qualified Data.Ord as Ord
+import qualified Data.Version as Version
 import qualified Data.Word as Word
 import qualified Text.ParserCombinators.ReadP as ReadP
 
@@ -398,6 +399,57 @@
 -- Just False
 isStable :: Version -> Bool
 isStable v = not (isUnstable v)
+
+-- | Converts from a 'Version.Version' from the @base@ package.
+--
+-- >>> renderVersion . fromBaseVersion $ Version.makeVersion [1, 2, 3]
+-- "1.2.3"
+--
+-- Missing version components are set to zero.
+--
+-- >>> renderVersion . fromBaseVersion $ Version.makeVersion []
+-- "0.0.0"
+-- >>> renderVersion . fromBaseVersion $ Version.makeVersion [1]
+-- "1.0.0"
+-- >>> renderVersion . fromBaseVersion $ Version.makeVersion [1, 2]
+-- "1.2.0"
+--
+-- Extra version components are ignored.
+--
+-- >>> renderVersion . fromBaseVersion $ Version.makeVersion [1, 2, 3, 4]
+-- "1.2.3"
+--
+-- Tags are ignored.
+--
+-- >>> renderVersion . fromBaseVersion $ Version.Version [] ["ignored"]
+-- "0.0.0"
+fromBaseVersion :: Version.Version -> Version
+fromBaseVersion v = case Version.versionBranch v of
+  (m : n : p : _) -> mkV (fromIntegral m) (fromIntegral n) (fromIntegral p)
+  (m : n : _) -> mkV (fromIntegral m) (fromIntegral n) 0
+  (m : _) -> mkV (fromIntegral m) 0 0
+  _ -> mkV 0 0 0
+
+-- | Converts to a 'Version.Version' from the @base@ package.
+--
+-- >>> toBaseVersion <$> parseVersion "1.2.3"
+-- Just (Version {versionBranch = [1,2,3], versionTags = []})
+--
+-- Pre-releases and builds are converted to tags.
+--
+-- >>> toBaseVersion <$> parseVersion "1.2.3-pre+build"
+-- Just (Version {versionBranch = [1,2,3], versionTags = ["pre","build"]})
+toBaseVersion :: Version -> Version.Version
+toBaseVersion v = Version.Version
+  (map fromIntegral
+    [ versionMajor v
+    , versionMinor v
+    , versionPatch v
+    ])
+  (concat
+    [ map renderPreRelease (versionPreReleases v)
+    , map renderBuild (versionBuilds v)
+    ])
 
 -- | Increments the major version number.
 --
diff --git a/salve.cabal b/salve.cabal
--- a/salve.cabal
+++ b/salve.cabal
@@ -3,7 +3,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           salve
-version:        0.0.7
+version:        0.0.8
 synopsis:       Semantic version numbers and constraints.
 description:    Salve provides semantic version (SemVer) numbers and constraints (ranges).
 category:       Distribution
