abelPercentage :: String -> S.State -> Int
labelPercentage l st =
    -- XXX in case of a disjunction, a label can occur several times,
    -- need to think what to do there
    (100 * occur) `div` S.maxSuccessTests st
  where
        occur = length [ l' | l' <- concat (map Set.toList (S.collected st)), l == l' ]

--------------------------------------------------------------------------
-- main shrinking loop

labelPercentage :: String -> S.State -> Int
labelPercentage l st =
    -- XXX in case of a disjunction, a label can occur several times,
    -- need to think what to do there
    (100 * occur) `div` S.maxSuccessTests st
  where
        occur = length [ l' | l' <- concat (map Set.toList (S.collected st)), l == l' ]

--------------------------------------------------------------------------
-- main shrinking loop
labelPercentage l st =
    -- XXX in case of a disjunction, a label can occur several times,
    -- need to think what to do there
    (100 * occur) `div` S.maxSuccessTests st
  where
        occur = length [ l' | l' <- concat (map Set.toList (S.collected st)), l == l' ]

--------------------------------------------------------------------------
-- main shrinking loop