[Haskell-cafe] Data polymophism
Phlex
Phlex at telenet.be
Sun Jun 10 06:34:45 EDT 2007
Just to keep you updated,
Ok so the design was bad ... a table of elements 'a' will have indexes
that hold elements of the same type 'a' so the list of indexes can be
[dbIndex a]..
There's was still one polymorphism issue :
data DbIndex a =
DbIndex {dbiInsert :: Row a -> Maybe (DbIndex a),
dbiDelete :: Row a -> DbIndex a,
dbiFindWithKey :: Dynamic -> Maybe [Row a]}
indexDelete DbIndex{dbiDelete=delete} row = delete row
indexInsert DbIndex{dbiInsert=insert} row = insert row
findWithKey :: forall a k. (Typeable k) => (DbIndex a) -> k -> Maybe [Row a]
findWithKey DbIndex{dbiFindWithKey=find} key = find $ toDyn key
As far as i understand it, there is absolutely no way for the key in
findWithKey to be fully typed while still having the indexes in the same
list, so i took the given advice and used dynamics.
I guess this is poor style but it does the job !
Thanks again
Sacha
More information about the Haskell-Cafe
mailing list