
15 Feb
2010
15 Feb
'10
7:35 p.m.
Miguel Mitrofanov schrieb:
-- {-# LANGUAGE FunctionalDependencies#-} -- {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE TypeFamilies #-} module Register where -- class Register a r | a -> r class Register a where type R a -- instance Register Int Int instance Register Int where type R Int = Int -- instance Register Float Float instance Register Float where type R Float = Float -- instance (Register a1 r1, Register a2 r2) => Register (a1, a2) (r1, r2) instance (Register a, Register b) => Register (a, b) where type R (a, b) = (R a, R b)
So type functions are undecidable by default?