intersections :: Ord a => [Set a] -> (Set a)
intersections = \sets -> let
    preconditions = (ListExt.notNull sets)
    result = (List.foldl Set.intersection (head sets) (tail sets))
    in (assert preconditions result)
intersections :: Ord a => [Set a] -> (Set a)
intersections = \sets -> let
    preconditions = (ListExt.notNull sets)
    result = (List.foldl Set.intersection (head sets) (tail sets))
    in (assert preconditions result)
intersections = \sets -> let
    preconditions = (ListExt.notNull sets)
    result = (List.foldl Set.intersection (head sets) (tail sets))
    in (assert preconditions result)