// 类型级编程:一个最平凡的例子
#import "/template.typ": doc-template
#doc-template(
title: "类型级编程:一个最平凡的例子",
date: "2025年5月17日",
body: [
本文将使用Haskell。
起手先开一些扩展:
```
{-# LANGUAGE GADTs #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE DataKinds#-}
{-# LANGUAGE TypeOperators #-}
{-# OPTIONS_GHC -Werror=incomplete-patterns #-}
import Data.Type.Equality
```
= 零一
计算机中的一切都是「零」和「一」:
```
data Bit = Zero | One
```
为Bit类型中的两个值:「零」和「一」,各自创建类型,是为单例类型(Singleton
Type):
```
-- 前缀S,是Sing
...
Email: i (at) mistivia (dot) com