caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] New polymorphic variant syntax
@ 2001-11-21 17:46 Patrick M Doane
  2001-11-21 19:06 ` Alain Frisch
  2001-11-24  5:21 ` Mike Leary
  0 siblings, 2 replies; 4+ messages in thread
From: Patrick M Doane @ 2001-11-21 17:46 UTC (permalink / raw)
  To: caml-list

Hello,

On the Bedouin project, we are currently exploring ways to verify that
construction of HTML data will respect constraints specified in a DTD. We
recently tried using the new polymorphic variant syntax in the 3.03 alpha
version to represent entity references. For example:

type fontstyle = [ `Tt | `I | `B | `U | `S | `Strike | `Big | `Small ]
type inline = [ `Pcdata | fontstyle | ... ]
type flow = [ block | inline ]

Then HTML generating functions use a phantom type to track the DTD
constraints:

val tt_ :
  ?id:string ->
  ?class_:string ->
  (* ... more attributes follow ... *)
  [< inline ] t list ->
  [> `Tt] t

Having abbreviations like 'inline' works really well. I'm curious to know
if there is a good way to represent the following information:

   <!ELEMENT FORM - - (%flow;)+ -(FORM)>

This states that a FORM element can have any flow object except for FORM
(i.e. nesting is not allowed).

How difficult would it be to extend the polymorphic variant syntax to list
tags that should not be included in the conjuction? Perhaps this already
possible? Of course we can always revert to simply listing the variants.

Thanks for the good work! This is much nicer to work with compared with
3.02.

Patrick

-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Caml-list] New polymorphic variant syntax
  2001-11-21 17:46 [Caml-list] New polymorphic variant syntax Patrick M Doane
@ 2001-11-21 19:06 ` Alain Frisch
  2001-11-21 19:16   ` Patrick M Doane
  2001-11-24  5:21 ` Mike Leary
  1 sibling, 1 reply; 4+ messages in thread
From: Alain Frisch @ 2001-11-21 19:06 UTC (permalink / raw)
  To: Patrick M Doane; +Cc: caml-list

On Wed, 21 Nov 2001, Patrick M Doane wrote:

> Having abbreviations like 'inline' works really well. I'm curious to know
> if there is a good way to represent the following information:
>
>    <!ELEMENT FORM - - (%flow;)+ -(FORM)>
>
> This states that a FORM element can have any flow object except for FORM
> (i.e. nesting is not allowed).
>
> How difficult would it be to extend the polymorphic variant syntax to list
> tags that should not be included in the conjuction? Perhaps this already
> possible? Of course we can always revert to simply listing the variants.

The type [> `Form of t] where t is an abstract type, for instance
should be ok for this, no ?


-- 
  Alain

-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Caml-list] New polymorphic variant syntax
  2001-11-21 19:06 ` Alain Frisch
@ 2001-11-21 19:16   ` Patrick M Doane
  0 siblings, 0 replies; 4+ messages in thread
From: Patrick M Doane @ 2001-11-21 19:16 UTC (permalink / raw)
  To: Alain Frisch; +Cc: caml-list

On Wed, 21 Nov 2001, Alain Frisch wrote:

> On Wed, 21 Nov 2001, Patrick M Doane wrote:
>
> > Having abbreviations like 'inline' works really well. I'm curious to know
> > if there is a good way to represent the following information:
> >
> >    <!ELEMENT FORM - - (%flow;)+ -(FORM)>
> >
> > This states that a FORM element can have any flow object except for FORM
> > (i.e. nesting is not allowed).
> >
> > How difficult would it be to extend the polymorphic variant syntax to list
> > tags that should not be included in the conjuction? Perhaps this already
> > possible? Of course we can always revert to simply listing the variants.
>
> The type [> `Form of t] where t is an abstract type, for instance
> should be ok for this, no ?

I was thinking about that but isn't it rather confusing? It certainly
disables the use of `Form, but it would be clearer if there was no mention
of it at all.

Patrick

-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Caml-list] New polymorphic variant syntax
  2001-11-21 17:46 [Caml-list] New polymorphic variant syntax Patrick M Doane
  2001-11-21 19:06 ` Alain Frisch
@ 2001-11-24  5:21 ` Mike Leary
  1 sibling, 0 replies; 4+ messages in thread
From: Mike Leary @ 2001-11-24  5:21 UTC (permalink / raw)
  To: Patrick M Doane; +Cc: caml-list

I have a (rambling) question/feature request.

I've been using W3's HTML Tidy as a cleanup tool for the small bit of HTML
I'm working on.  I've also got a local copy of www.htmlhelp.com's validator
cgi program, which seems to be on par with W3's validation service.

What I'd really like is a local program that will flexibly:

- validate to the dtd in the doctype declaration, or convert to a different
one as nicely as possible, output a list of errors, optionally fix the
errors and warnings  (HTML Tidy does this pretty well, but isn't as
rigorous at validating as W3 or htmlhelp, and not flexible enough in its
options)
  -- optionally insert null attributes for those that are missing (like
summary for tables, alt for img, etc.)

- strip out all formatting that should be done with css, either leaving class
attributes that can be used in a style sheet, or doing away with the
formatting altogether

- indent properly (Tidy is good, but not quite beautiful)

- maybe validate css too

- recursive option, with options for depth/domain

- link checking

I guess what I'd like is a more featureful and thorough version of Tidy.  I
would think that this could be quite a little killer-app in its niche,
assuming it is done right -- amenable to gui wrappers, vim errorformat, et
al.  I would also think this might be a decent test vehicle for a lot of
the Bedouin code.  Unfortunately I'm too busy to do much about it myself...

Q: Is anyone working on such a beast?

in sum:

Tidy
  + up-to-date/rigorous
  + link checking
  + css
  + bells and whistles
  + very flexible
  = killer-app?


-- 
"You mean, I'm the bad guy?"  --Bill Foster, aka D-FENS
-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2001-11-24  5:23 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-11-21 17:46 [Caml-list] New polymorphic variant syntax Patrick M Doane
2001-11-21 19:06 ` Alain Frisch
2001-11-21 19:16   ` Patrick M Doane
2001-11-24  5:21 ` Mike Leary

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).