1) Отображение - дело непростое. ФП предназначено для расчётов, а не для отображений. А именно: подаёте на вход функции параметры и получаете результат. Обычно под отображением понимают преобразование типа к строковому виду. В Haskell строка это список символов:
type String = [Char]
Если вы что-то делаете в интерпретаторе, то там ещё вычисления (и вывод) происходят в монаде IO.
Для вывода многих типов есть функция show.
2)
как теперь вывести список чаров
можете в интерпретаторе так и написать: ['a', 'b', 'c']
Есть синтаксический сахар: список char можно выводить в виде строки, т.е. без скобок, но в двойных кавычках: "abc"
если он отображается как список стрингов
нет такого. Список char отображается в двух видах (см. выше), они равнозначны.
почему список символов отображается как строка символов?
Это синтаксический сахар, чтобы не писать запятые после каждого символа.