@@ -39,6 +39,7 @@ module Constrained.NumOrd (
3939 combineNumSpec ,
4040 genFromNumSpec ,
4141 shrinkWithNumSpec ,
42+ fixupWithTypeSpec ,
4243 conformsToNumSpec ,
4344 toPredsNumSpec ,
4445 OrdLike (.. ),
@@ -320,6 +321,11 @@ genFromNumSpec (NumSpecInterval ml mu) = do
320321shrinkWithNumSpec :: Arbitrary n => NumSpec n -> n -> [n ]
321322shrinkWithNumSpec _ = shrink
322323
324+ -- TODO: fixme
325+
326+ fixupWithNumSpec :: Arbitrary n => NumSpec n -> n -> Maybe n
327+ fixupWithNumSpec _ = listToMaybe . shrink
328+
323329constrainInterval ::
324330 (MonadGenError m , Ord a , Num a , Show a ) => Maybe a -> Maybe a -> Integer -> m (a , a )
325331constrainInterval ml mu r =
@@ -1073,6 +1079,7 @@ instance HasSpec Integer where
10731079 combineSpec = combineNumSpec
10741080 genFromTypeSpec = genFromNumSpec
10751081 shrinkWithTypeSpec = shrinkWithNumSpec
1082+ fixupWithTypeSpec = fixupWithNumSpec
10761083 conformsTo = conformsToNumSpec
10771084 toPreds = toPredsNumSpec
10781085 cardinalTypeSpec = cardinalNumSpec
@@ -1084,6 +1091,7 @@ instance HasSpec Int where
10841091 combineSpec = combineNumSpec
10851092 genFromTypeSpec = genFromNumSpec
10861093 shrinkWithTypeSpec = shrinkWithNumSpec
1094+ fixupWithTypeSpec = fixupWithNumSpec
10871095 conformsTo = conformsToNumSpec
10881096 toPreds = toPredsNumSpec
10891097 cardinalTypeSpec = cardinalNumSpec
@@ -1095,6 +1103,7 @@ instance HasSpec (Ratio Integer) where
10951103 combineSpec = combineNumSpec
10961104 genFromTypeSpec = genFromNumSpec
10971105 shrinkWithTypeSpec = shrinkWithNumSpec
1106+ fixupWithTypeSpec = fixupWithNumSpec
10981107 conformsTo = conformsToNumSpec
10991108 toPreds = toPredsNumSpec
11001109 cardinalTypeSpec _ = TrueSpec
@@ -1106,6 +1115,7 @@ instance HasSpec Natural where
11061115 combineSpec = combineNumSpec
11071116 genFromTypeSpec = genFromNumSpec
11081117 shrinkWithTypeSpec = shrinkWithNumSpec
1118+ fixupWithTypeSpec = fixupWithNumSpec
11091119 conformsTo = conformsToNumSpec
11101120 toPreds = toPredsNumSpec
11111121 cardinalTypeSpec (NumSpecInterval (fromMaybe 0 -> lo) (Just hi)) =
@@ -1121,6 +1131,7 @@ instance HasSpec Word8 where
11211131 combineSpec = combineNumSpec
11221132 genFromTypeSpec = genFromNumSpec
11231133 shrinkWithTypeSpec = shrinkWithNumSpec
1134+ fixupWithTypeSpec = fixupWithNumSpec
11241135 conformsTo = conformsToNumSpec
11251136 toPreds = toPredsNumSpec
11261137 cardinalTypeSpec = cardinalNumSpec
@@ -1134,6 +1145,7 @@ instance HasSpec Word16 where
11341145 combineSpec = combineNumSpec
11351146 genFromTypeSpec = genFromNumSpec
11361147 shrinkWithTypeSpec = shrinkWithNumSpec
1148+ fixupWithTypeSpec = fixupWithNumSpec
11371149 conformsTo = conformsToNumSpec
11381150 toPreds = toPredsNumSpec
11391151 cardinalTypeSpec = cardinalNumSpec
@@ -1146,6 +1158,7 @@ instance HasSpec Word32 where
11461158 combineSpec = combineNumSpec
11471159 genFromTypeSpec = genFromNumSpec
11481160 shrinkWithTypeSpec = shrinkWithNumSpec
1161+ fixupWithTypeSpec = fixupWithNumSpec
11491162 conformsTo = conformsToNumSpec
11501163 toPreds = toPredsNumSpec
11511164 cardinalTypeSpec = cardinalNumSpec
@@ -1157,6 +1170,7 @@ instance HasSpec Word64 where
11571170 combineSpec = combineNumSpec
11581171 genFromTypeSpec = genFromNumSpec
11591172 shrinkWithTypeSpec = shrinkWithNumSpec
1173+ fixupWithTypeSpec = fixupWithNumSpec
11601174 conformsTo = conformsToNumSpec
11611175 toPreds = toPredsNumSpec
11621176 cardinalTypeSpec = cardinalNumSpec
@@ -1168,6 +1182,7 @@ instance HasSpec Int8 where
11681182 combineSpec = combineNumSpec
11691183 genFromTypeSpec = genFromNumSpec
11701184 shrinkWithTypeSpec = shrinkWithNumSpec
1185+ fixupWithTypeSpec = fixupWithNumSpec
11711186 conformsTo = conformsToNumSpec
11721187 toPreds = toPredsNumSpec
11731188 cardinalTrueSpec = equalSpec 256
@@ -1180,6 +1195,7 @@ instance HasSpec Int16 where
11801195 combineSpec = combineNumSpec
11811196 genFromTypeSpec = genFromNumSpec
11821197 shrinkWithTypeSpec = shrinkWithNumSpec
1198+ fixupWithTypeSpec = fixupWithNumSpec
11831199 conformsTo = conformsToNumSpec
11841200 toPreds = toPredsNumSpec
11851201 cardinalTypeSpec = cardinalNumSpec
@@ -1192,6 +1208,7 @@ instance HasSpec Int32 where
11921208 combineSpec = combineNumSpec
11931209 genFromTypeSpec = genFromNumSpec
11941210 shrinkWithTypeSpec = shrinkWithNumSpec
1211+ fixupWithTypeSpec = fixupWithNumSpec
11951212 conformsTo = conformsToNumSpec
11961213 toPreds = toPredsNumSpec
11971214 cardinalTypeSpec = cardinalNumSpec
@@ -1203,6 +1220,7 @@ instance HasSpec Int64 where
12031220 combineSpec = combineNumSpec
12041221 genFromTypeSpec = genFromNumSpec
12051222 shrinkWithTypeSpec = shrinkWithNumSpec
1223+ fixupWithTypeSpec = fixupWithNumSpec
12061224 conformsTo = conformsToNumSpec
12071225 toPreds = toPredsNumSpec
12081226 cardinalTypeSpec = cardinalNumSpec
@@ -1214,6 +1232,7 @@ instance HasSpec Float where
12141232 combineSpec = combineNumSpec
12151233 genFromTypeSpec = genFromNumSpec
12161234 shrinkWithTypeSpec = shrinkWithNumSpec
1235+ fixupWithTypeSpec = fixupWithNumSpec
12171236 conformsTo = conformsToNumSpec
12181237 toPreds = toPredsNumSpec
12191238 cardinalTypeSpec _ = TrueSpec
@@ -1225,6 +1244,7 @@ instance HasSpec Double where
12251244 combineSpec = combineNumSpec
12261245 genFromTypeSpec = genFromNumSpec
12271246 shrinkWithTypeSpec = shrinkWithNumSpec
1247+ fixupWithTypeSpec = fixupWithNumSpec
12281248 conformsTo = conformsToNumSpec
12291249 toPreds = toPredsNumSpec
12301250 cardinalTypeSpec _ = TrueSpec
0 commit comments