From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: ** X-Spam-Status: No, score=2.0 required=5.0 tests=DNS_FROM_SECURITYSAGE, HTML_MESSAGE autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by yquem.inria.fr (Postfix) with ESMTP id F1D39BBAF for ; Tue, 18 Nov 2008 12:47:37 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ao0BAAI6IklA6ba/kGdsb2JhbACCPzGQKz4BAQEBCQkMBxEDvX6CeQ X-IronPort-AV: E=Sophos;i="4.33,624,1220220000"; d="scan'208";a="17318909" Received: from nf-out-0910.google.com ([64.233.182.191]) by mail2-smtp-roc.national.inria.fr with ESMTP; 18 Nov 2008 12:47:37 +0100 Received: by nf-out-0910.google.com with SMTP id b11so1406146nfh.13 for ; Tue, 18 Nov 2008 03:47:37 -0800 (PST) Received: by 10.210.65.17 with SMTP id n17mr2264125eba.16.1227008857189; Tue, 18 Nov 2008 03:47:37 -0800 (PST) Received: by 10.210.51.13 with HTTP; Tue, 18 Nov 2008 03:47:37 -0800 (PST) Message-ID: <9722eaea0811180347w16a34270l8876b0674ce22a5@mail.gmail.com> Date: Tue, 18 Nov 2008 11:47:37 +0000 From: "Thomas Gazagnaire" To: "=?ISO-8859-1?Q?Daniel_B=FCnzli?=" Subject: Re: [Caml-list] Wanted: your feedback on the hierarchy of OCaml Batteries Included Cc: "OCaml List" In-Reply-To: <421532A1-E2CA-404F-8387-E11DA9B3DE79@erratique.ch> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_99_25856016.1227008857167" References: <1227002178.6170.25.camel@Blefuscu> <20081118100625.GA25627@annexia.org> <421532A1-E2CA-404F-8387-E11DA9B3DE79@erratique.ch> X-Spam: no; 0.00; ocaml:01 ocaml:01 toplevel:01 toplevel:01 caml-list:01 functions:01 functions:01 grep:01 grep:01 int:01 int:01 data:02 data:02 modules:02 modules:02 ------=_Part_99_25856016.1227008857167 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline > > With the current standard library if I suddenly want to use Int32.of_int, I > know I just need to type Int32.of_int in my source. With your proposal I > need to remember that it is in Data.Numeric and go at the beginning of my > file to open it or write Data.Numeric.Int32.of_int, to me this brings > bureaucracy without any benefit. And lack of bureaucracy is one of the > reasons I like ocaml (and dislike java for example). > > Besides Hierarchies are anyway limited in their descriptive power and one > day you'll find something that will fit in two places, Rope is already an > example being both Data.Persistent and Data.Text. > I use modules in the same way, mostly to be able to grep Int32.of_int in my code when needed (as greping for of_int only would make the result less precise). > Thus my proposal would be to _present_ them as a hierarchy (but even here a > mean to tag/browse the modules with/by keywords would do a better job) but > keep the actual module structure of Batteries as flat as possible, > everything just under the toplevel Batteries. When I code I really don't > want to have to think about all these open directives that essentially bring > nothing. > tag system for modules is a good idea, and I would like to add that type search for functions (which is already done by ocamlbrowser) is also nice. -- Thomas ------=_Part_99_25856016.1227008857167 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline
With the current standard library if I suddenly want to use Int32.of_int, I know I just need to type Int32.of_int in my source. With your proposal I need to remember that it is in Data.Numeric and go at the beginning of my file to open it or write Data.Numeric.Int32.of_int, to me this brings bureaucracy without any benefit. And lack of bureaucracy is one of the reasons I like ocaml (and dislike java for example).

Besides Hierarchies are anyway limited in their descriptive power and one day you'll find something that will fit in two places, Rope is already an example being both Data.Persistent and Data.Text.

 I use modules in the same way, mostly to be able to grep Int32.of_int in my code when needed (as greping for of_int only would make the result less precise).


Thus my proposal would be to _present_ them as a hierarchy (but even here a mean to tag/browse the modules with/by keywords would do a better job) but keep the actual module structure of Batteries as flat as possible, everything just under the toplevel Batteries. When I code I really don't want to have to think about all these open directives that essentially bring nothing.

tag system for modules is a good idea,  and I would like to add that type search for functions (which is already done by ocamlbrowser) is also nice.
--
Thomas

------=_Part_99_25856016.1227008857167--