Date: Fri, 14 May 1999 18:59:37 +0200
Message-Id: <199905141659.SAA07446@ithif20.inf.tu-dresden.de>
From: Hendrik Tews <tews@tcs.inf.tu-dresden.de>
To: caml-list@inria.fr
Subject: grammar for class types
Hi,
when I tried to define some classes and class types I came across
the following questions:
1. What is the difference between
# class type b = [int, string] a;;
and
# type c = (int, string) a;;
assuming some class type a with two type parameters?
And Why do I have to use different parentheses in both cases?
(Yes, I know, it's what the manual says, but I would expect that
one kind of parentheses should be enough for all kind of type
parameters. )
2. Why is it not possible to add type constraints to the first
kind of type abbreviation, like in
class type ['a] c = ['a, string] a constraint 'a = int;;
3. (To re-raise a question from John Prevost which has never been
addressed:) Why is it not possible to mix type definitions and
class type definitions like in
# class type a = object method m : a end
# and
# type b = Node of a | Tree of b * b
(Yes, it is possible to use the < ... > notation, but it is not
possible to use # with such types.)
Bye,
Hendrik
This archive was generated by hypermail 2b29 : Sun Jan 02 2000 - 11:58:22 MET