- 类型 (type)
- 函数 (function)
- 类型类 (type class)
- Prelude中的类型与函数的使用
- 递归 (recursion)
- 列表内包 (list comprehension)
- 高阶函数 (higher order function)
- 定义类型 (define types)
- 定义类型类 (define type class)
- 使用Monad
- 使用IO Monad
- 使用State, Writer, Reader Monad
- 使用Monad转换器 (monad transformer)
- 使用更多的Monad
- 使用Monad, 再使用Monad ...
- MonadIO, MonadBase ...
- 使用Monad与Monad转换器管理代码
- 类型系统 (type system)
- 类型推断 (type inference)
- Kind推断 (kind inference)
- 多态Kind (kind polymorphism)
- 可类型化 (typeable)
- 单一同态限定 (monomorphism restriction)
- 类型家族 (type family)
###通用编程
- 代数数据类型通用编程 (algebric data type generic)
- 摒弃模板化代码 (Scrap you boilerplate (SYB))
- 模板元编程 (meta template programming)
- 准引用 (quasi quotes)
- 确定性并发
- 微线程
- Semarphore
- 软件事务内存 (software transactional memory)
- 通信顺序式进程 (communicating sequential process)
- 分布式编程 (distributed programming)
- 单元测试 (unit test)
- 随机测试 (QuickCheck)
- 穷举测试
- 反例搜寻测试
- 完全性测试
- SMT精化类型
- criterion库
- threadscope的使用
- Arrow
- 函数反应式编程
- Haskell的依赖类型
- 编程语言原理
- 范畴论 (category theory)