Чтобы прояснить вопрос, существуют языки, поддерживающие зависимые типы, такие как Idris. Scala поддерживает зависимые от пути типы, которые покрывают его часть, но мне не ясно, как можно реализовать такую вещь, как список с определенным значением в качестве первого элемента или длины. Я также знаю о Shapeless. Поэтому мне интересно, существует ли реалистичный c способ кодирования такого типа с использованием любых библиотек Scala для максимальной выразительности. Приложение представляет собой поиск путей в графе между двумя указанными c узлами n1 и n2. Поэтому для повышения безопасности типов программ я пытаюсь указать, что результатом являются списки узлов, начинающиеся с n1 и заканчивающиеся на n2, а также при объединении двух списков, от n1 до n3 и от n3 до n2, где n3 - это узел между тем, как также утверждать через типы, что результирующий список имеет длину, равную сумме объединенных списков. Спасибо