Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
[OSR] Suggested topic - XML processing API
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2008-02-05 (10:31)
From: Bünzli_Daniel <daniel.buenzli@e...>
Subject: Re: [Caml-list] [OSR] Suggested topic - XML processing API

Le 5 févr. 08 à 10:51, Vincent Hanquez a écrit :

> On Tue, Feb 05, 2008 at 09:36:02AM +0100, Bünzli Daniel wrote:
>>> - having a common spec for several libs makes more sense if they  
>>> can share
>>> common types; maybe you should use polymorphic variants instead of  
>>> regular
>>> ones?
>> Agreed. In xmlm these variants become polymorphic in the next  
>> version.
> that's really a bad idea; As a user of xmlm, I hope you're going to
> re-consider. the polymorphic variant namespace is so easily polluted  
> by
> random "value"

What people seem to fail to understand is that with polymorphic  
variants if you close them and write mlis you get exactly the same  
typechecking as with regular variants but without being tied to a  
particular module. For example if define

type encoding = [ `ISO_8859_1 | `US_ASCII | `UTF_16 | `UTF_16BE |  
`UTF_16LE | `UTF_8 ]
and then ask for this type exactly in a function type, e.g.
val encoding_to_string : encoding -> string
then you get exactly the same typechecking as with a regular variants  
on applications of encoding_to_string.
Using variants allows you to have a better decoupling between say your  
own modules that hande encodings and xmlm. As Jacques mentions this  
actually may prevents pollution from xmlm to your own modules.