考虑在代码库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谓词上分裂。