Home
Objective Caml
ocaml@conference.jabber.ru
Среда, 24 февраля 2010< ^ >
f[x] установил(а) тему: Камль -- http://caml.inria.fr | Логи -- http://chatlogs.jabber.ru/ocaml@conference.jabber.ru/ | Верблюды грязи не боятся! | release crap | voice по запросу | ocaml мёртв, move on
Конфигурация комнаты
Участники комнаты

GMT+3
[00:15:12] digital_curse вышел(а) из комнаты
[00:45:07] ermine вышел(а) из комнаты
[03:13:35] daapp вошёл(а) в комнату
[06:36:38] digital_curse вошёл(а) в комнату
[06:59:21] iNode вышел(а) из комнаты
[07:18:39] ermine вошёл(а) в комнату
[07:38:37] iNode вошёл(а) в комнату
[08:57:57] gds вошёл(а) в комнату
[09:17:28] Typhon вошёл(а) в комнату
[09:42:25] Typhon вышел(а) из комнаты
[09:49:55] ermine вышел(а) из комнаты
[10:37:57] Typhon вошёл(а) в комнату
[10:57:56] <gds> попробовал реализовать ref с правильными вариантностями -- http://dumpz.org/17147/ , но ведь эти явные coercions -- это же печально?
(кстати, пастилка на defun.ru йок)
[11:03:17] <f[x]> я даже не буду спрашивать что не так с вариантностью в обычном ref
[11:04:46] <gds> да и я не отвечу, что параметр там инвариантен, тогда как иногда хочется геттеры-путтеры с ко- и контравариантностями соответственно.
[11:12:31] <f[x]> жуть
[12:17:26] ermine вошёл(а) в комнату
[12:29:38] Sergey Plaksin вошёл(а) в комнату
[12:29:43] _hubo_ вошёл(а) в комнату
[12:30:36] _hubo_ выгнали из комнаты
[12:32:53] Sergey Plaksin вышел(а) из комнаты
[13:39:09] daapp вышел(а) из комнаты
[13:41:06] Kakadu вошёл(а) в комнату
[13:48:05] Kakadu вышел(а) из комнаты: I'm happy Miranda IM user. Get it at http://miranda-im.org/.
[14:27:33] <gds> странное дело.
type ref 'a = < get : 'a; put : 'a -> unit >
and source +'a = < get : 'a >
and sink -'a = < put : 'a -> unit >;
из этого инферится следующий кусок в mli:
type 'a ref = < get : 'a; put : 'a -> unit >
and 'a source = < get : 'a >
and 'a sink = < put : 'a -> unit >
вариантности пропали.  похоже на багу.
[14:27:33] digital_curse вышел(а) из комнаты
[15:19:11] <f[x]> gds: может потому что
The variance indicated by the + and - annotations on parameters are required only for abstract types. For abbreviations, variant types or record types, the variance properties of the type constructor are inferred from its definition, and the variance annotations are only checked for conformance with the definition.
[15:22:15] <gds> f[x]: ага, ты прав.
# module Q : sig type +'a t = 'a list end = struct type +'a t = 'a list end;;
module Q : sig type 'a t = 'a list end
# module A : sig type +'a t end = struct type +'a t = 'a list end;;
module A : sig type +'a t end
[17:10:12] iNode вышел(а) из комнаты
[17:30:06] gds вышел(а) из комнаты
[19:11:43] gds вошёл(а) в комнату
[19:21:56] Typhon вышел(а) из комнаты
[19:42:40] gds вышел(а) из комнаты
[20:11:39] f[x] вышел(а) из комнаты
[21:08:36] Typhon вошёл(а) в комнату
[21:32:09] olegfink вышел(а) из комнаты
[21:32:09] olegfink вошёл(а) в комнату
[21:34:17] olegfink вышел(а) из комнаты
[21:34:17] olegfink вошёл(а) в комнату
[21:50:01] gds вошёл(а) в комнату
[23:04:35] olegfink вышел(а) из комнаты
[23:04:35] olegfink вошёл(а) в комнату
[23:06:30] digital_curse вошёл(а) в комнату
[23:22:32] ygrek вошёл(а) в комнату
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!