Hello, I would like to construct a collection of function-like objects on which I could apply some value, in a typesafe and clean way.
Let's say I have something like this: > data Fun = forall a b . F (a -> b) > type Callables = Map String Fun I would like to be able to write: > invoke :: Callables -> a -> String -> b > invoke m d k = case lookup k m of > Just (F f) -> f d > Nothing -> error $ "unable to find function for key " ++ k which of course does not compile nor even make sense. I suspect I need to have more information in Fun to be able to apply functions correctly, but don't know where to look at. I read recently an article about implicit configurations that used some type wizardry to ensure correct and typesafe use of external data and sounded pretty cool, (http://www.cs.rutgers.edu/~ccshan/prepose/prepose.pdf) but I suspect this is 1) too complex for me an 2) overkill for my problem. Could someone point me in the right direction ? Thanks in advance Arnaud _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe