Как я могу эффективно реализовать структуру данных списка, где у меня может быть 2 вида в голову и конец списка, которые всегда указывают на хвост списка без дорогостоящих обращений. то есть:
start x = []
end x = reverse start -- []
start1 = [1,2,3] ++ start
end start1 -- [3,2,1]
end должен иметь возможность сделать это, не вызывая "обратное", а просто глядя на данный список с точки зрения автоматического преобразования списка. То же самое должно быть выполнено, если я создам новые списки из конкатенаций для запуска.