8. KList
コンスセルベースの不変リスト
val a = 1 cons (2 cons (3 cons (4 cons (5 cons Nil))))
val b = KList(1, 2, 3, 4, 5)
a == b
val a = KList(KList(1, 2), KList(3, 4), KList(5, 6))
val result = a.sum(KMonoid.KLIST())
result == KList(1, 2, 3, 4, 5, 6)
val a = Klist(1, 2, 3, 4, 5) zip KList(1, 2, 3, 4, 5)
a == KList(1 to 1, 2 to 2, 3 to 3, 4 to 4, 5 to 5)