模仿Agda中的类型的Haskell规范(仅限一个实例)

时间:2016-04-22 20:52:10

标签: haskell normalization typeclass agda

Agda的记录和instance关键字的混合使我们的行为类似于Haskell的类型类。此外,忽略instance关键字,我们可以为同一类型设置多个实例 - 这是Haskell无法做到的。

我正处于需要Haskell的单实例要求的地步,但在Agda中。 是否有编译器选项或某些技巧/启发式来强制执行此操作?

现在我采取的方法是,

record Yo (n : ℕ) : Set where
  field
    sem : (some interesting property involving n)

open Yo {{...}}

postulate UniqueYo: ∀ {n} (p q : Yo n) → p ≡ q

然而,每当我实际使用UniqueYo时,缺乏计算会使我的目标充满...| UniqueYo p p之类的内容,我更喜欢...| refl或完全重写为普通形式。< / p>

感谢任何帮助!

0 个答案:

没有答案