я тоже считаю что есть, и эта разница в том, что второй вариант удобнее, потому что
а) его можно раскрыть при желании
б) короче паттерны и конструирования с открытым неймспейсом
в) имена конструкторов проще, без какого-то мусора, навязанным проблемами языка
иметь в коде Nil, VNil, HNil, RNil, TNil это ужасно (на самом деле не очень ужасно, но как минимум это грязно, и это в хаскеле отторгает лично меня)