Множество - это набор логически связанных между собой элементов. Со времён “классического” Паскаля множества мало чем изменились (или вообще не изменились - здесь точно не скажу). Так что в Lazarus (а, следовательно, и в FreePascal) множество - это набор элементов порядкового типа. Количество элементов может быть от 0 до 255. Если в множестве 0 элементов, то это пустое множество. Объявляется множество так: ИмяМножества : set of БазовыйТип; Пример: var M1 : set of Byte; Здесь мы объявили множество M1, в котором могут храниться значения типа Byte...
Интервальный тип есть далеко не во всех языках программирования. Например, в “великом и могучем” С++ его нет (ну может сейчас появился, не знаю точно). И лично меня это сильно бесило, поскольку начинал я с Паскаля, где этот тип есть. И наличие этого типа - это прям существенное преимущество (с моей точки зрения, во всяком случае). Разумеется, есть этот тип и в наследниках Паскаля: Delphi, Lazarus и др. Интервальный тип задаётся границами своих значений внутри базового типа. Например, внутри типа Byte (диапазон 0…255) вы можете определить свой тип в диапазоне 1...