However, TypeFamilies seems too be non portable as according to this
http://www.haskell.org/haskellwiki/GHC/Type_families, it works only as from
GHC 6.10.1.
Henning Thielemann-4 wrote:
Miguel Mitrofanov schrieb:
-- {-# LANGUAGE FunctionalDependencies#-}
-- {-# LANGUAGE
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
I have the following class and instance
class Register a r | a - r where
instance (Register a ra, Register b rb) =
Register (a,b) (ra,rb) where
and GHC refuses the instance because of violated Coverage Condition.
I have more instances like
instance Register Int8 (Reg Int8) where
-- {-# 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