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 mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by yquem.inria.fr (Postfix) with ESMTP id 3F505BBAF for ; Thu, 12 Jun 2008 07:07:14 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAJlLUEjOe3NG/2dsb2JhbACxTA X-IronPort-AV: E=Sophos;i="4.27,628,1204498800"; d="scan'208";a="13856326" Received: from spoomusic.com ([206.123.115.70]) by mail3-smtp-sop.national.inria.fr with ESMTP; 12 Jun 2008 07:07:13 +0200 Received: (qmail 10849 invoked by uid 89); 12 Jun 2008 05:07:12 -0000 Received: from unknown (HELO ?192.168.1.99?) (98.165.129.233) by 0 with ESMTPS (DHE-RSA-AES256-SHA encrypted); 12 Jun 2008 05:07:12 -0000 Message-ID: <4850AF41.90506@ramenlabs.com> Date: Wed, 11 Jun 2008 22:08:17 -0700 From: Dave Benjamin User-Agent: Mozilla-Thunderbird 2.0.0.12 (X11/20080420) MIME-Version: 1.0 To: =?ISO-8859-1?Q?Daniel_B=FCnzli?= Cc: caml-list caml-list Subject: Re: [Caml-list] [ANN] Uuidm 0.9.0 References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-Spam: no; 0.00; bunzli:01 ocaml:01 hashing:01 sig:01 val:01 struct:01 sig:01 val:01 cheers:01 wrote:01 caml-list:01 digest:01 digest:01 benjamin:01 string:02 Daniel Bünzli wrote: > I'd like to announce the existence of the following snippet of code. > > Uuidm is an OCaml module implementing 128 bits universally unique > identifiers version 3, 5 (name based with MD5, SHA-1 hashing) and 4 > (random based) according to RFC 4122. Thanks, Daniel! I don't think you need Obj.magic for the md5 function - Digest.t is equivalent to string in the interface. For instance: # module M : sig val md5 : string -> string end = struct let md5 = Digest.string end;; module M : sig val md5 : string -> string end # M.md5 "AsdfasdfasdF";; - : string = "\248~\198\237v\220\165d\187\214\200\158\\\"=\133" Cheers, Dave