[Haskell-cafe] Re: Is it possible to read existential types?
ccshan at post.harvard.edu
Wed Apr 28 20:12:35 EDT 2004
On 2004-04-28T15:12:03-0400, S. Alexander Jacobson wrote:
> Ok, but it sounds like you need to know the list
> of possible types in advance. Is it possible
> to have a lib take a filepath and type name as an
> arbitrary string, and read the instance in?
I don't think you need to know the list of possible types in advance.
Here is some (only slightly tested) code:
lookupRead :: (Eq key, Read val, Typeable val) =>
key -> [(key, (String, String))] -> Maybe val
lookupRead key list = ret
where ret = case lookup key list of
Just (typ, val) ->
if typ == show (typeOf (fromJust ret))
then case reads val of
[(v,"")] -> Just v
_ -> Nothing
_ -> Nothing
The question is how to get the result of lookupRead memoized, so that
the call to reads happens at most once for each entry in the list.
Edit this signature at http://www.digitas.harvard.edu/cgi-bin/ken/sig
BBC News: Universities face week of protest
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 187 bytes
Desc: not available
Url : http://www.haskell.org//pipermail/haskell-cafe/attachments/20040428/86263c3c/attachment.bin
More information about the Haskell-Cafe