distributionExclusive :: Ord a => [a] -> Distribution a
distributionExclusive xs = Distribution
    { total = length xs
    , parts = Map.fromListWith (+) $ fmap (, 1) xs
    }
distributionExclusive :: Ord a => [a] -> Distribution a
distributionExclusive xs = Distribution
    { total = length xs
    , parts = Map.fromListWith (+) $ fmap (, 1) xs
    }
distributionExclusive xs = Distribution
    { total = length xs
    , parts = Map.fromListWith (+) $ fmap (, 1) xs
    }