From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id E2CBF7F0F9 for ; Tue, 24 Nov 2015 09:35:43 +0100 (CET) IronPort-PHdr: 9a23:R62BkBUCQGhRMjH8gHMKJ8tLqxfV8LGtZVwlr6E/grcLSJyIuqrYZhyFt8tkgFKBZ4jH8fUM07OQ6PC9HzNbqs/Y6DgrS99laVwssY0uhQsuAcqIWwXQDcXBSGgEJvlET0Jv5HqhMEJYS47UblzWpWCuv3ZJQk2sfTR8Kum9IIPOlcP/j7n0oM2OJVoTz2PkOftbF1afk0b4joEum4xsK6I8mFPig0BjXKBo/15uPk+ZhB3m5829r9ZJ+iVUvO89pYYbCf2pN4xxd7FTDSwnPmYp/4Wr8ECbFUrcrkcbB0wQjh1OSyLM5xH7WN+luy3msex30SKaPMveXLk0XjPk5KBuHkzGkiACYhAj+WdYjc1rxIhcqhW970hx2YfSa4aUL7x0eanaYfsRSGMHUNwHBH8JOZ+1c4ZaV7lJBu1ftYSo4gJW9RY= Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=francois.bobot@cea.fr; spf=None smtp.mailfrom=francois.bobot@cea.fr; spf=None smtp.helo=postmaster@sainfoin-out.extra.cea.fr Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of francois.bobot@cea.fr) identity=pra; client-ip=132.167.192.145; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="francois.bobot@cea.fr"; x-sender="francois.bobot@cea.fr"; x-conformance=sidf_compatible Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of francois.bobot@cea.fr) identity=mailfrom; client-ip=132.167.192.145; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="francois.bobot@cea.fr"; x-sender="francois.bobot@cea.fr"; x-conformance=sidf_compatible Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@sainfoin-out.extra.cea.fr) identity=helo; client-ip=132.167.192.145; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="francois.bobot@cea.fr"; x-sender="postmaster@sainfoin-out.extra.cea.fr"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0B9AAAJIVRWnJHAp4Rewg+CKIFlgz2CUgKBMjoSAQEBAQEBAQEQAQEBAQEICwkJIS6CLYIHAQEBAwEjDwEFQAEQCxgCAgUWCwICCQMCAQIBRQYNAQcCiCIIriCQNAEBAQEGAQEBAQEBHYEBilGHdYFEBZZQjwyHQo88g3IoDYJVHYFBhhwBAQE X-IPAS-Result: A0B9AAAJIVRWnJHAp4Rewg+CKIFlgz2CUgKBMjoSAQEBAQEBAQEQAQEBAQEICwkJIS6CLYIHAQEBAwEjDwEFQAEQCxgCAgUWCwICCQMCAQIBRQYNAQcCiCIIriCQNAEBAQEGAQEBAQEBHYEBilGHdYFEBZZQjwyHQo88g3IoDYJVHYFBhhwBAQE X-IronPort-AV: E=Sophos;i="5.20,338,1444687200"; d="scan'208";a="154904930" Received: from sainfoin-out.extra.cea.fr ([132.167.192.145]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 24 Nov 2015 09:35:43 +0100 Received: from pisaure.intra.cea.fr (pisaure.intra.cea.fr [132.166.88.21]) by sainfoin.extra.cea.fr (8.15.2/8.15.2/CEAnet-Internet-out-2.4) with ESMTP id tAO8Zg9W025713; Tue, 24 Nov 2015 09:35:42 +0100 Received: from pisaure.intra.cea.fr (localhost [127.0.0.1]) by localhost (Postfix) with SMTP id 3A4D920408E; Tue, 24 Nov 2015 09:42:09 +0100 (CET) Received: from muguet1.intra.cea.fr (muguet1.intra.cea.fr [132.166.192.6]) by pisaure.intra.cea.fr (Postfix) with ESMTP id 23269204052; Tue, 24 Nov 2015 09:42:09 +0100 (CET) Received: from [10.8.32.80] (is222783.intra.cea.fr [10.8.32.80]) by muguet1.intra.cea.fr (8.15.2/8.15.2/CEAnet-Intranet-out-1.4) with ESMTP id tAO8Zghq019192; Tue, 24 Nov 2015 09:35:42 +0100 Message-ID: <5654215E.5000203@cea.fr> Date: Tue, 24 Nov 2015 09:35:42 +0100 From: =?UTF-8?B?RnJhbsOnb2lzIEJvYm90?= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.7.0 MIME-Version: 1.0 To: Anton Bachin CC: caml-list@inria.fr References: <4824377F-4045-4D47-9BAB-E06B0C939988@yahoo.com> <564AF405.10400@cea.fr> <1A569326-8749-4332-A88C-719165728F20@yahoo.com> <5652EDFC.5070105@cea.fr> <98E819C0-76A2-4038-A5E6-DFBDC08DF7FA@yahoo.com> In-Reply-To: <98E819C0-76A2-4038-A5E6-DFBDC08DF7FA@yahoo.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: [Caml-list] [ANN] Lambda Soup - HTML scraping and rewriting with CSS selectors On 23/11/2015 17:26, Anton Bachin wrote: >> However in this case since the differences is about typing and not just the implementation, I'm not sure you can define a generic functor that could be applied with instance (NetHttp, tyxml, yours) that restricts differently the function applications. > > Let me make sure we are focusing on the same issue. I am supposing that > you would like to construct a tree using tyxml’s “richly-typed” > functions, then be able to walk around it using Lambda Soup, and make > edits in the tree using the mutation interface (or some improved > variant of it) or tyxml. However, when making the edits, you would want > the “rich” tyxml types preserved, to benefit from the static constraints > they impose on your code. Is this right? Yes, I forgot that you don't modify the tree. However even just for walking, you need to be able to return an element of the right type. But it is, indeed, easier without modification. > > I think that is the only trouble. Lamdba Soup doesn’t actually expose > any XML type, and I think it can ported or functorized to work with just > about any low-level XML representation. It would be interesting to know how that work out. Best, -- François