1) This system is week. It is still impossible write
type Person = (lastName::Sting, name :: String) type Image = ( name :: ByteString, sizeX :: Int, sizeY :: Int ) name :: (b ~ Stirng) => (a,b) -> b name :: (a ~ ByteString) => (a,b,c) -> a 2) you already could write name :: (String, b) -> String name (a, _) = a You even could write now : data Person = Person Sting String data Image = Image ByteString Int Int class Rec_Name a where type OutRec_Name a name :: a -> OutRec_Name a instance (OutRec_Name Person ~ String) => Rec_Name Person type OutRec_Name Person = String name (Person _ a) = a instance (OutRec_Name Image ~ ByteString) => Rec_Name Image type OutRec_Name Image = ByteString name (Person a _ _) = a -- View this message in context: http://haskell.1045720.n5.nabble.com/Anonymous-records-A-solution-to-the-problems-of-record-system-tp5738476p5738498.html Sent from the Haskell - Haskell-prime mailing list archive at Nabble.com. _______________________________________________ Haskell-prime mailing list Haskell-prime@haskell.org http://www.haskell.org/mailman/listinfo/haskell-prime