From 47ba3ccc072e0e5598535e6e6cc8992fdf77b24d Mon Sep 17 00:00:00 2001 From: Ryan Scott Date: Thu, 23 Jan 2025 06:11:47 -0500 Subject: [PATCH] Document that Data.Ix.inRange is not a suitable default for isInRange Fixes #178. --- src/System/Random/Internal.hs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/System/Random/Internal.hs b/src/System/Random/Internal.hs index fd0efd7a..28e2cafe 100644 --- a/src/System/Random/Internal.hs +++ b/src/System/Random/Internal.hs @@ -950,7 +950,12 @@ class UniformRange a where -- -- There is a default implementation of 'isInRange' via 'Generic'. Other helper function -- that can be used for implementing this function are `isInRangeOrd` and - -- `isInRangeEnum` + -- `isInRangeEnum`. + -- + -- Note that the @isRange@ method from @Data.Ix@ is /not/ a suitable default + -- implementation of 'isInRange'. Unlike 'isInRange', @isRange@ is not + -- required to be symmetric, and many @isRange@ implementations are not + -- symmetric in practice. -- -- @since 1.3.0 isInRange :: (a, a) -> a -> Bool