[Haskell-cafe] How to define Show [MyType] ?
Wouter Swierstra
wss at Cs.Nott.AC.UK
Tue Dec 9 04:36:28 EST 2008
> The biggest wart is that "view" is not a total function; the compiler
> needs to be extra careful to only call it on types that are instances
> of "View". I wonder if there is a good way to solve this problem?
The usual way to solve this is to define a data type corresponding to
all the types in your class. For example:
data Data a where
| CHAR : Data Char
| STRING : Data String
| LIST : Data a -> Data [a]
...
With this representation you no longer need typecase (which is
horrendous semantic hack) and your dispatch function can be made
total. Hope this helps,
Wouter
This message has been checked for viruses but the contents of an attachment
may still contain software viruses, which could damage your computer system:
you are advised to perform your own checks. Email communications with the
University of Nottingham may be monitored as permitted by UK legislation.
More information about the Haskell-Cafe
mailing list