【发布时间】:2019-07-15 17:04:55
【问题描述】:
我有一个数据结构
record IdentityPreservingMorphism domain codomain where
constructor MkMorphismOfMonoids
func : domain -> codomain
funcRespId : (Monoid domain, Monoid codomain) => func (Algebra.neutral) = Algebra.neutral
这只是说IdentityPreservingMorphism 是幺半群之间的态射,需要尊重身份。
我试图证明恒等态射是IdentityPreservingMorphism
monoidIdentity : Monoid m => MorphismOfMonoids m m
monoidIdentity = MkMorphismOfMonoids
id
?respId
?respIdRefl 的简单操作不起作用,因为可用的Monoid 实例太多。如何告诉编译器我只想使用来自monoidIdentity 定义的实例?
【问题讨论】: