一方面,我可以使用从文字#_
构造s :Fin
open import Data.Fin
data I'mFinnish : Set where
Mk : Fin 5 → I'mFinnish
foo : I'mFinnish
foo = Mk (# 3)
另一方面,我可以使用文字对自然进行模式匹配:
open import Data.Nat
data I'mANatural : Set where
Mk : ℕ → I'mANatural
open import Data.Bool
bar : I'mANatural → Bool
bar (Mk 3) = true
bar _ = false
我的问题是,我可以在紧握的手上Fin
匹配s时使用文字吗?即,我可以做些什么来近似以下无效的 Agda 代码:
open import Data.Bool
bar′ : I'mFinnish → Bool
bar′ (Mk 3) = true
bar′ _ = false