[Haskell-cafe] Of types and constructors;
a question of programming style
Scott Turner
p.turner at computer.org
Tue Jul 6 10:23:17 EDT 2004
On 2004 July 06 Tuesday 05:35, Graham Klyne wrote:
> When I'm designing datatypes for a Haskell program, I sometimes seem to end
> up with a slightly incoherent mixture of algebraic types and
> constructors.
> example
> data Event = Document DocURI Element
> | Element Name BaseURI Language Children Attributes LiIndex
> | Subject EndElement
> | Attribute Name AttributeVal
> | Text TextVal
At first I was going to say that I would _never_ feel the need to turn a set
of constructors into a set of types. But looking again at your example
constructors I grasp what you mean by "incoherent". In such cases, what may
help is to consider why such disparate entities would be grouped together.
It is not uncommon that the reason is that they all are processed by one or a
few functions. Then you can consider making those functions into a class.
Whether this is desirable depends on whether splitting up the implementation
of the original functions, reorganized by "type", makes the program more
modular.
More information about the Haskell-Cafe
mailing list