From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id B1592822AC for ; Fri, 17 Nov 2017 17:32:45 +0100 (CET) Authentication-Results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=leo@lpw25.net; spf=None smtp.mailfrom=leo@lpw25.net; spf=None smtp.helo=postmaster@out4-smtp.messagingengine.com Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of leo@lpw25.net) identity=pra; client-ip=66.111.4.28; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="leo@lpw25.net"; x-sender="leo@lpw25.net"; x-conformance=sidf_compatible Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of leo@lpw25.net) identity=mailfrom; client-ip=66.111.4.28; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="leo@lpw25.net"; x-sender="leo@lpw25.net"; x-conformance=sidf_compatible Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@out4-smtp.messagingengine.com) identity=helo; client-ip=66.111.4.28; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="leo@lpw25.net"; x-sender="postmaster@out4-smtp.messagingengine.com"; x-conformance=sidf_compatible IronPort-PHdr: =?us-ascii?q?9a23=3A3ehHpRJpVHrMB+DkoNmcpTZWNBhigK39O0sv0rFi?= =?us-ascii?q?tYgXLvvxwZ3uMQTl6Ol3ixeRBMOAtKIC1rKempujcFJDyK7JiGoFfp1IWk1Nou?= =?us-ascii?q?QttCtkPvS4D1bmJuXhdS0wEZcKflZk+3amLRodQ56mNBWB6kG1uDUbHxG6MQtu?= =?us-ascii?q?Osz0HJTThoK5zbOc4ZrWNiFFg3KCYbJuIV3iqQjWns0OntE/bKA81k2a8TNzZ+?= =?us-ascii?q?1KyDYwdhqolBHm65Lo8Q=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0CGDADfDg9ahxwEb0JbHAEBAQQBAQoBA?= =?us-ascii?q?YUOJ4N/ixOOMYFXJpZjghAKhTsChGdGEQEBAQEBAQEBAQESAQEBCA0JCCgvgjg?= =?us-ascii?q?igkUBAgIBIx0BATgECwsEAT0CAiwrijYIqThrgieDCQEBBYVYghQBAQEBBgEBA?= =?us-ascii?q?QEBGwiDNIIHg3KCd4VnggwMMTGCMpMNjzUBqFiWMoE6OQuCCFUwCkmCZIJNDBM?= =?us-ascii?q?MggUjNopWAQEB?= X-IPAS-Result: =?us-ascii?q?A0CGDADfDg9ahxwEb0JbHAEBAQQBAQoBAYUOJ4N/ixOOMYF?= =?us-ascii?q?XJpZjghAKhTsChGdGEQEBAQEBAQEBAQESAQEBCA0JCCgvgjgigkUBAgIBIx0BA?= =?us-ascii?q?TgECwsEAT0CAiwrijYIqThrgieDCQEBBYVYghQBAQEBBgEBAQEBGwiDNIIHg3K?= =?us-ascii?q?Cd4VnggwMMTGCMpMNjzUBqFiWMoE6OQuCCFUwCkmCZIJNDBMMggUjNopWAQEB?= X-IronPort-AV: E=Sophos;i="5.44,410,1505772000"; d="scan'208,217";a="301280835" Received: from out4-smtp.messagingengine.com ([66.111.4.28]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 17 Nov 2017 17:32:44 +0100 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id 184A620D34 for ; Fri, 17 Nov 2017 11:32:43 -0500 (EST) Received: from web1 ([10.202.2.211]) by compute5.internal (MEProxy); Fri, 17 Nov 2017 11:32:43 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lpw25.net; h= content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc; s=mesmtp; bh=/g6OKWOWzfmDM8dw9jWBShuPQn RgzoGrmJ5KfkbeE14=; b=N8EmprW76SRwVwXgC3SRtHVpI4b/9UOUGzaOj782Vf C4ahzMNKZfuDxnwGX/RqiXtLzNRUsobHv9VJpw85jUywh/AwkEDqTZCsEMqwkimY yVxoLtdzAI/JtQFxB+f8bgdYb2GXV1pi1Nbx7gon7w0wHqx3QqKMy9MkIsS0crKZ 0= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=/g6OKW OWzfmDM8dw9jWBShuPQnRgzoGrmJ5KfkbeE14=; b=O1vQLcSnIwpLpnbp4hMVgu RPeZstAuz9V3YqTakaEM2VR2ULRhKBFBsHykFTkJOL6+JoNH00YYZsISBRuL1P2l ERAjx9+nQ/YeRknUY2ym/i8uUpyEZIoD/N5p1m4EQqxwkFZqsrR9qomuWtPFI0lx TR4BMKbCXnYoIJTw3OmAKUgYgD/Q/4B+knPQlngGuj0dQh/p3bmka+YTulDOYmaJ XdiyzeV18CJuDo74kRdhABc82OHQDFxK0QGy2EBXr0DGs+n5+g4St23RLNWBsGTl FH7qygGQ1CZpizD/zTBUig0jsnaR8gMtDwqQcmKGGu+pcJ45RYOoIF1/HV6M8ShA == X-ME-Sender: Received: by mailuser.nyi.internal (Postfix, from userid 99) id F093C957AB; Fri, 17 Nov 2017 11:32:42 -0500 (EST) Message-Id: <1510936362.3494872.1176049824.44FB0912@webmail.messagingengine.com> From: Leo White To: caml-list@inria.fr MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: multipart/alternative; boundary="_----------=_151093636234948721" X-Mailer: MessagingEngine.com Webmail Interface - ajax-4ef04c51 References: <41144c60-9090-7159-c870-08ca5eb5c09e@polychoron.fr> Date: Fri, 17 Nov 2017 11:32:42 -0500 In-Reply-To: Subject: Re: [Caml-list] Subtyping (or something like it) This is a multi-part message in MIME format. --_----------=_151093636234948721 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" > Where the extension character is shift+number of bytes (at least on my > keyboard...) I'm a bit worried that it'll start> looking like Perl, but time will tell. Personally, I would go with something like: module B1 = struct let ( .%{ } ) = get_1byte_int end module B2 = struct let ( .%{ } ) = get_2byte_int end module B4 = struct let ( .%{ } ) = get_4byte_int end module B8 = struct let ( .%{ } ) = get_8byte_int end Which gives you similar convenience: foo.B1.%{index} foo.B2.%{index} foo.B4.%{index} foo.B8.%{index} without drifting into Perl territory. Regards, Leo --_----------=_151093636234948721 Content-Transfer-Encoding: 7bit Content-Type: text/html; charset="utf-8"
> Where the extension character is shift+number of bytes (at least on my keyboard...) I'm a bit worried that it'll start
> looking like Perl, but time will tell.

Personally, I would go with something like:

  module B1 = struct
    let ( .%{ } ) = get_1byte_int
  end

  module B2 = struct
    let ( .%{ } ) = get_2byte_int
  end

  module B4 = struct
    let ( .%{ } ) = get_4byte_int
  end

  module B8 = struct
    let ( .%{ } ) = get_8byte_int
  end

Which gives you similar convenience:

  foo.B1.%{index}
  foo.B2.%{index}
  foo.B4.%{index}
  foo.B8.%{index}

without drifting into Perl territory.

Regards,

Leo
--_----------=_151093636234948721--