
While we're on the topic of databases, I really wanted to try out query/inserting from/to my database with records like this: http://hpaste.org/40240/db_library_approach Define a record: data Person f = Person { pid :: f Integer , firstName :: f String , middleName :: f (Maybe String) , lastName :: f String , age :: f Integer } then I'd query it like personById :: Integer -> Query Person personById i = Person { pid = constant i , firstName = anything , middleName = anything , lastName = anything , age = anything } deriving (Typeable,Data) Or with a Data.Default instance: personById :: Integer -> Query Person personById i = def { pid = constant i } But I have yet to figure out how to derive a Typeable instance for such a type. I don't want to write any instances of anything. Technically I can get the field names and values using a Data.Data.Data instance, but I don't know, maybe I should make a TypeablePolymorphicKinds class or something and try to derive for it. UHC's generic deriving would probably be good for something like this, but I want GHC.