[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Goswin von Brederlow <goswin-v-b@w...> |
| Subject: | Re: [Caml-list] Merging object signatures |
Dario Teixeira <darioteixeira@yahoo.com> writes:
> Hi,
>
> Similarly to polymorphic variants, is there a way for object signatures to
> be merged by type name? Consider the example at the end; I'm wondering if
> it is possible for the declaration of 'foobar' to be something along the
> lines of 'val foobar: int -> int -> < foo_t; bar_t >' instead of needing to
> explicitly list all the methods in foo_t and bar_t.
>
> Thanks in advance for your help!
> Best regards,
> Dario Teixeira
>
>
> module Test:
> sig
> type foo_t = < a: int >
> type bar_t = < b: int >
>
> val foobar: int -> int -> < a:int; b: int >
>
> (* val foobar: int -> int -> < foo_t; bar_t > *)
> end =
> struct
> type foo_t = < a: int >
> type bar_t = < b: int >
>
> class foo a = object method a: int = a end
> class bar b = object method b: int = b end
>
> let foobar a b =
> object
> inherit foo a
> inherit bar b
> end
> end
Can't you make foo_t and bar_t class types and foobar_t inherits them
both?
MfG
Goswin