короче, поясняю.
определяется функция баблСорт, после двоеточия идет перечисление аргументов, функция принимает на вход аргумент который реализует Орд (не помню слово там чет типа интерфейсов только это нихуя не интерфейсы)
дальше за счет полиморфизма мы определяем несколько вариантов функции - когда пустой лист мы возвращаем пустой лист, когда лист с одним элементов - возвращаем его же
затем когда нам на вход приходит лист, мы деструктурируем его на (x - первый элемент, y - второй, xs как остаток) и тд. when в теле функции определяет локальные переменные