11
yazmak için bir yol yoktur ben T
Ters injective tip ailelerin
type family T a = b | b -> a
ilk sorum bir injective tip aile var Diyelim:
type family T' = the inverse of T
T
tüm örneklerini tekrarlamak zorunda kalmadan ama geri viteste.
Öyle ki: bu çalışması gerekir gibi iki T
ve T'
injektif gibi T (X1 a (T' a)) = a
O diğer çalışmak mekaniktir bir tarafı verilen görünüyor.
neyse T'
yazmak için? Uygun uzantılarıyla
olmaz mıydı 'a ~ Çalışmak mı? tyvar 'a' onlar tarafından kapsamındaki fundeps sayesinde tespit edildiğinde çok sınırlayıcı görünüyor' Tinv', bir argüman olarak söz gerekmektedir, çünkü – mb14
Görünüşe 'tipi TINV b = a' reddedilir. – chi
açık bir tip aile uygulamasına fundep dönüştürmek mümkün değildir, ancak @ gibi mb14 Eğer tersini hesaplayabilir bir tip imzasında bir eşitlik kısıtlama kullanarak, dedi - örneğin '(a ~ Tb) => Vekil a -> Vekil b' veya eşdeğer Pro Proxy (Tb) -> Proxy b'. – user2407038