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=none autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id B9F66BC69 for ; Tue, 20 Feb 2007 11:04:34 +0100 (CET) Received: from orion.metastack.com (no-dns-yet.demon.co.uk [80.177.38.218] (may be forged)) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id l1KA4XkT008660 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL) for ; Tue, 20 Feb 2007 11:04:34 +0100 Received: from treble (cpc2-cmbg6-0-0-cust535.cmbg.cable.ntl.com [81.107.34.24]) (authenticated bits=0) by orion.metastack.com (8.13.4/8.13.3) with ESMTP id l1K9I6dJ028410 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NO) for ; Tue, 20 Feb 2007 09:18:07 GMT From: "David Allsopp" To: References: <20070220094543.EE684BC76@yquem.inria.fr> Subject: Re: [Caml-list] inspecting abstract values in the debugger Date: Tue, 20 Feb 2007 10:04:32 -0000 Organization: MetaStack Solutions Ltd. Message-ID: <013601c754d6$851b6c90$6a7ba8c0@treble> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 Thread-Index: AcdUzYdm0S4BAbNWSQi3c55MN2DyqQAB+gvw X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3028 In-Reply-To: <20070220094543.EE684BC76@yquem.inria.fr> X-Miltered: at concorde with ID 45DAC7B1.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; debugger:01 lindig:01 debugger:01 toplevel:01 debugging:01 inserting:01 toplevel:01 mli:01 val:01 cmo:01 wrote:01 abstract:01 abstract:01 caml-list:01 int:01 Christian Lindig wrote: > In the debugger, abstract values cannot be inspected. I can't experiment in the debugger as I develop under native Windows and so use the toplevel for debugging, but won't inserting temporary Obj.magic calls into your code to "cast" abstract values to their actual representations help as it does in the toplevel? e.g. *S.mli* type t val make : int -> int -> t *S.ml* type t = int * int let make x y = (x, y) *Toplevel* #load "t.cmo";; let (t : int * int) = Obj.magic (T.make 1 2);; David