diff --git a/aern2-mp.cabal b/aern2-mp.cabal
--- a/aern2-mp.cabal
+++ b/aern2-mp.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           aern2-mp
-version:        0.2.16.0
+version:        0.2.16.1
 synopsis:       Multi-precision ball (interval) arithmetic
 description:    Please see the README on GitHub at <https://github.com/michalkonecny/aern2/#readme>
 category:       Math
@@ -90,7 +90,7 @@
     , deepseq
     , hspec
     , integer-logarithms
-    , mixed-types-num >=0.6.1
+    , mixed-types-num >=0.6.2
     , reflection
     , regex-tdfa
     , template-haskell
@@ -130,7 +130,7 @@
     , deepseq
     , hspec
     , integer-logarithms
-    , mixed-types-num >=0.6.1
+    , mixed-types-num >=0.6.2
     , reflection
     , regex-tdfa
     , template-haskell
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,6 +1,6 @@
 # Change log for aern2-mp
 
-* v 0.2.16.0 2024-09-21
+* v 0.2.16.1 2024-10-06
   * adapt to int / rat conversion with sample
 * v 0.2.15 2023-04-11
   * add generic selectCountable, instance for Kleenean
diff --git a/src/AERN2/MP/Float/Conversions.hs b/src/AERN2/MP/Float/Conversions.hs
--- a/src/AERN2/MP/Float/Conversions.hs
+++ b/src/AERN2/MP/Float/Conversions.hs
@@ -55,8 +55,25 @@
     safeConvertExactly =
       Right . MPFloat . P.fromInteger
 
+instance ConvertibleExactly (WithSample MPFloat Integer) MPFloat where
+    safeConvertExactly (WithSample sampleMPFloat n) =
+      fmap increasePrecisionToP (safeConvertExactly n)
+      where
+        p = if isFinite sampleMPFloat then getPrecision sampleMPFloat else (prec 2)
+        increasePrecisionToP v 
+          | vp >= p = v
+          | otherwise = setPrecision p v
+          where
+            vp = getPrecision v
+           
 instance ConvertibleExactly Int MPFloat where
     safeConvertExactly = safeConvertExactly . integer
+
+instance ConvertibleExactly (WithSample MPFloat Int) MPFloat where
+    safeConvertExactly (WithSample sampleMPFloat n) =
+      fmap (setPrecision p) (safeConvertExactly n)
+      where
+        p = getPrecision sampleMPFloat
 
 fromIntegerCEDU :: Precision -> Integer -> BoundsCEDU MPFloat
 fromIntegerCEDU pp =
