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=1.0 required=5.0 tests=AWL,SPF_SOFTFAIL 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 3A19FBB84 for ; Mon, 24 Nov 2008 22:50:00 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvwCAN+vKknAXQImgWdsb2JhbACBbZFxAQEWIr1wgnw X-IronPort-AV: E=Sophos;i="4.33,661,1220220000"; d="asc'?vcf'?scan'208";a="17560555" Received: from discorde.inria.fr ([192.93.2.38]) by mail2-smtp-roc.national.inria.fr with ESMTP; 24 Nov 2008 22:49:59 +0100 Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by discorde.inria.fr (8.13.6/8.13.6) with ESMTP id mAOLnwGj007239 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=OK) for ; Mon, 24 Nov 2008 22:49:59 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvkAAN+vKknUGyobkWdsb2JhbACBbZFxAQEBAQkLCgcRA71tgnw X-IronPort-AV: E=Sophos;i="4.33,661,1220220000"; d="asc'?vcf'?scan'208";a="19513460" Received: from smtp1-g19.free.fr ([212.27.42.27]) by mail3-smtp-sop.national.inria.fr with ESMTP; 24 Nov 2008 22:49:58 +0100 Received: from smtp1-g19.free.fr (localhost.localdomain [127.0.0.1]) by smtp1-g19.free.fr (Postfix) with ESMTP id 592041AB2F2; Mon, 24 Nov 2008 22:49:58 +0100 (CET) Received: from Tocksi.local (lns-bzn-48f-81-56-220-129.adsl.proxad.net [81.56.220.129]) by smtp1-g19.free.fr (Postfix) with ESMTP id D36741AB306; Mon, 24 Nov 2008 22:49:57 +0100 (CET) Message-ID: <492B2184.4010300@univ-savoie.fr> Date: Mon, 24 Nov 2008 22:49:56 +0100 From: Christophe Raffalli User-Agent: Thunderbird 2.0.0.18 (Macintosh/20081105) MIME-Version: 1.0 To: "forum@x9c.fr" Cc: caml-list@inria.fr Subject: Re: [Caml-list] [ANN] Kaputt 1.0 alpha References: <8D0DD4BD-CCA5-4640-84E4-5F14F0804035@x9c.fr> <20081123213044.GA32214@usha.takhisis.invalid> <1227482073.4929e3d999bca@imp.ovh.net> <87tz9xt6bb.fsf@aryx.cs.uiuc.edu> In-Reply-To: X-Enigmail-Version: 0.95.7 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enig5138EEC807E859E43C6992B5" X-Miltered: at discorde with ID 492B2186.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; christophe:01 raffalli:01 christophe:01 raffalli:01 univ-savoie:01 zacchiroli:01 zack:01 ocaml:01 haskell:01 rjmh:01 ocaml:01 functors:01 combinators:01 combinators:01 camlp:01 X-Attachments: cset="utf-8" name="Christophe_Raffalli.vcf" name="Christophe_Raffalli.vcf" type="application/pgp-signature" name="signature.asc" name="signature.asc" This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig5138EEC807E859E43C6992B5 Content-Type: multipart/mixed; boundary="------------010002010600040209070800" This is a multi-part message in MIME format. --------------010002010600040209070800 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable forum@x9c.fr a =E9crit : > > Le 24 nov. 08 =E0 17:52, Yoann Padioleau a =E9crit : > >> forum@x9c.fr writes: >> >> Hi Xavier, >> >>> Selon Stefano Zacchiroli : >>> >>>> (...) >>> >>> I was indeed aware of oUnit when I started working on Kaputt. >>> The initial intent was to provide OCaml with something along >>> the lines of the QuickCheck library developed for Haskell >>> (http://www.cs.chalmers.se/~rjmh/QuickCheck/). Clones of QuickCheck >>> exist for various languages (caml-list@inria.fr) but not for OCaml, >> >> Actually I posted a few years ago a small module imitating parts of >> quicheck: >> >> http://aryx.kicks-ass.org/~pad/ocaml/quickcheck.ml > > Sorry, I failed to remember this. > > >> Apparently they even now use my ugly file in the Janet Street Core >> Library. >> >> >>> even if a QuickCheck equivalent is provided by the Reins library >>> (http://ocaml-reins.sourceforge.net/). >> >> I didn't find much in this ocaml reins library ... and it >> looks quite heavy in functors ... > > Yes, I indeed wanted to rely upon functions/combinators instead. > It seems lighter this way. > > >> Your library looks very good, very clean. I just noticed you missed >> the 'pair' and 'tuple' random generators. > > Well, maybe their names are not intuitive but Generator.zip{1..5} > allows to combine n generators into a generator returning tuples > of order n (zip1 being the identity function). > > >> One criticism is that like many other libraries, such as oUnit, >> ocamlcalendar, they seem a little bit heavyweight. You got hundreds >> of functions, 5 modules ... > > That's true but it seems hard to have a combinator-based library with > few functions/combinators. With too few combinators, you leave too > much work to the developer (including a lot a boilerplate code). > With too many combinators, you request the developer to take more > time in order to use the library. I find it hard to calibrate the size = of > the library. > > Maybe things could be done in a lighter way by using objects ? Or a camlp4 extension to build the intended function(s) by induction on the type definition. you could include that as part of deriving (http://code.google.com/p/deriving/) Hope this helps, Christophe > > > Xavier > > _______________________________________________ > Caml-list mailing list. Subscription management: > http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list > Archives: http://caml.inria.fr > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs > --=20 Christophe Raffalli Universite de Savoie Batiment Le Chablais, bureau 21 73376 Le Bourget-du-Lac Cedex tel: (33) 4 79 75 81 03 fax: (33) 4 79 75 87 42 mail: Christophe.Raffalli@univ-savoie.fr www: http://www.lama.univ-savoie.fr/~RAFFALLI --------------------------------------------- IMPORTANT: this mail is signed using PGP/MIME At least Enigmail/Mozilla, mutt or evolution=20 can check this signature. The public key is stored on www.keyserver.net --------------------------------------------- --------------010002010600040209070800 Content-Type: text/x-vcard; charset=utf-8; name="Christophe_Raffalli.vcf" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="Christophe_Raffalli.vcf" begin:vcard fn:Christophe Raffalli n:Raffalli;Christophe org:LAMA (UMR 5127) email;internet:christophe.raffalli@univ-savoie.fr title;quoted-printable:Ma=3DC3=3DAEtre de conf=3DC3=3DA9rences tel;work:+33 4 79 75 81 03 note:http://www.lama.univ-savoie.fr/~raffalli x-mozilla-html:TRUE version:2.1 end:vcard --------------010002010600040209070800-- --------------enig5138EEC807E859E43C6992B5 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (Darwin) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFJKyGEi9jr/RgYAS4RAjEIAKCQnSBXnjeopjo1U6tQlovldCoKegCgxl1l mDrLhxY6LMCF7ZiWRx3kPHw= =Z87m -----END PGP SIGNATURE----- --------------enig5138EEC807E859E43C6992B5--