From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by yquem.inria.fr (Postfix) with ESMTP id 27111BC57 for ; Thu, 15 Apr 2010 07:31:33 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ag0DAOtBxkvUGyoFkWdsb2JhbACbYRUBAQEBCQsKBxEDH74phQ4EiGE X-IronPort-AV: E=Sophos;i="4.52,210,1270418400"; d="scan'208";a="48509498" Received: from smtp5-g21.free.fr ([212.27.42.5]) by mail3-smtp-sop.national.inria.fr with ESMTP; 15 Apr 2010 07:31:32 +0200 Received: from smtp5-g21.free.fr (localhost [127.0.0.1]) by smtp5-g21.free.fr (Postfix) with ESMTP id 8BECCD480D6 for ; Thu, 15 Apr 2010 07:31:26 +0200 (CEST) Received: from apc.happyleptic.org (happyleptic.org [82.67.194.89]) by smtp5-g21.free.fr (Postfix) with ESMTP id A9D4DD48067 for ; Thu, 15 Apr 2010 07:31:24 +0200 (CEST) Received: from yeeloong (unknown [192.168.1.40]) by apc.happyleptic.org (Postfix) with SMTP id 1B7EB334FD for ; Thu, 15 Apr 2010 07:31:21 +0200 (CEST) Received: by yeeloong (sSMTP sendmail emulation); Thu, 15 Apr 2010 07:31:10 +0200 From: rixed@happyleptic.org Date: Thu, 15 Apr 2010 07:31:10 +0200 To: caml-list Subject: Re: [Caml-list] Inspect and dump values on the OCaml heap Message-ID: <20100415053110.GC2321@yeeloong> References: <3FB04EDC-37F4-4336-A435-13ACF038051D@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Spam: no; 0.00; ocaml:01 invariants:01 invariants:01 heap:01 caml-list:01 functions:01 functions:01 proofs:01 data:02 data:02 structures:02 api:02 unexpected:03 preserve:03 preserve:03 > I am convinced that such things have *no* usefulness. If you > are trying to debug your data structure, state its global > invariants, prove (at whatever level of formality you are most > comfortable with) that all API functions preserve the invariants, > and use the module system to hide functions that do not > preserve them. You will be done faster than trying to make > sense of graphs and your code will be better. Visualizing data structures does no prevent you from proving some invariant and can give some other kind of informations, like spotting unexpected (ir)regularities, wrong proofs, etc... Why oppose both ?