考虑在代码库Arrows
中定义的,Domains
和CoDomain
类型族。agda
对程序员来说很明显,它认为Arrows (Domains func) (CoDomain func) ~ func
. 但我无法curries (Proxy :: Proxy (Domains func)) (Proxy :: Proxy (CoDomain func)) undefined :: func
通过 GHC 的类型检查器。那是因为 GHC 不够聪明,无法推断 和 的组合Domains
是单CoDomain
射的。有没有办法教 GHC 呢?我想有些情况会在IsBase
谓词上分裂。