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=0.0 required=5.0 tests=AWL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from discorde.inria.fr (discorde.inria.fr [192.93.2.38]) by yquem.inria.fr (Postfix) with ESMTP id 421E4BC6B for ; Sun, 15 Jul 2007 06:08:36 +0200 (CEST) Received: from pih-relay06.plus.net (pih-relay06.plus.net [212.159.14.133]) by discorde.inria.fr (8.13.6/8.13.6) with ESMTP id l6F48ZZ7030739 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NO) for ; Sun, 15 Jul 2007 06:08:36 +0200 Received: from [80.229.56.224] (helo=beast.local) by pih-relay06.plus.net with esmtp (Exim) id 1I9vPO-00064m-UJ for caml-list@yquem.inria.fr; Sun, 15 Jul 2007 05:08:35 +0100 From: Jon Harrop Organization: Flying Frog Consultancy Ltd. To: caml-list@yquem.inria.fr Subject: Re: [Caml-list] ANN: pretty-printing, type-safe marshalling, dynamic typing for free. Date: Sun, 15 Jul 2007 05:03:16 +0100 User-Agent: KMail/1.9.7 References: <46787172.4080404@ed.ac.uk> In-Reply-To: <46787172.4080404@ed.ac.uk> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200707150503.16654.jon@ffconsultancy.com> X-Miltered: at discorde with ID 46999DC3.001 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; type-safe:01 marshalling:01 ocaml:01 syntax:01 haskell:01 type-safe:01 marshalling:01 ocaml:01 frog:98 equality:01 equality:01 wrote:01 typing:01 typing:01 caml-list:01 On Wednesday 20 June 2007 01:14:42 Jeremy Yallop wrote: > I'm pleased to announce an initial release of `deriving', a system for > constructing functions automatically from type definitions. > > Deriving extends OCaml with two new operations: a syntax for calling > an "overloaded" function at a particular type: > > C.function v > > and the `deriving' construct found in Haskell (and Clean) for > requesting that the implementation generate an instance of an > overloaded function from a type definition: > > type t = r > deriving (C1, C2) > > Deriving provides functions for pretty-printing, dynamic typing, > type-safe structure-sharing marshalling, SML-style equality, > mapping, and more. I don't know how I managed to miss this awesome announcement! The idea of retrofitting equality types onto OCaml interests me greatly. Any chance you could elaborate on how this is done and what errors look like? :-) Many thanks, -- Dr Jon D Harrop, Flying Frog Consultancy Ltd. The OCaml Journal http://www.ffconsultancy.com/products/ocaml_journal/?e