Final tagless And Object Algebras

这篇也算是抄的OLEKSANDR MANZYUK的博客,最近写个玩具的时候,发现在实现tagless-final的时候,Scala的一些不太方便的地方(existential types?),这些问题感觉DOT之前是很难解决了,不过索性还有其他的解决方案。

Very Simple Algebraic Data Types

有两种ADT一种是abstract data types,另一种叫algebraic data types,前者常常在OO的语言出现,一般是各种泛型,比如一些容器类。而后者代数数据类型则是来自函数式编程。