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 mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by yquem.inria.fr (Postfix) with ESMTP id AD86FBBAF for ; Sat, 28 Aug 2010 10:30:25 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AhcCAKpleEzRVdg2kGdsb2JhbACDFpAkjR4IFQEBAQEJCQwHEQMfnwOIaIJPhgCJAgEBAwWBHYMicwSKCYhO X-IronPort-AV: E=Sophos;i="4.56,283,1280700000"; d="scan'208";a="68310301" Received: from mail-qw0-f54.google.com ([209.85.216.54]) by mail4-smtp-sop.national.inria.fr with ESMTP; 28 Aug 2010 10:30:25 +0200 Received: by qwg5 with SMTP id 5so4498180qwg.27 for ; Sat, 28 Aug 2010 01:30:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:sender:received:date :x-google-sender-auth:message-id:subject:from:to:content-type; bh=hrDrJU3uHXaPzoOQX20uaFXMB+ckH+MsV69eeY+XOKU=; b=cFqyNgYLz10EJS3GxuFPf4CgEHN6ROG+old3PlEjeAT9T7+sqRDSvhjMitHkAid7xf D3wbCmlmUmlwHsmO4tbyW+uDvtOeKfUcn7aUum6fOF4yX6rAsfI34S8+oFgNROpEcbcl xg+miQ8jr5lCNVe5UoMsqmQEgToKrrwd7y0NI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:date:x-google-sender-auth:message-id:subject :from:to:content-type; b=cugFMa1m0YX6C/VtDxhoPLNHe4KGHcJUbaqCe0MvOu177anKt/1NeUFRjTyMIsXDfC /oXRhdTns6hq8vnP2fuGa4wqhu0OzSHmeVLXwzugkLJ62hL/mMi71/lhu4Ogh/1gaGiA 7sO2YXiDrI0SWb/zgr7T1uZNx73TiPOERWlac= MIME-Version: 1.0 Received: by 10.224.101.10 with SMTP id a10mr1088948qao.230.1282984224104; Sat, 28 Aug 2010 01:30:24 -0700 (PDT) Sender: daniel.c.buenzli@gmail.com Received: by 10.229.223.208 with HTTP; Sat, 28 Aug 2010 01:30:23 -0700 (PDT) Date: Sat, 28 Aug 2010 10:30:23 +0200 X-Google-Sender-Auth: -SX6srbCukXEEqYEFGT9Z09P5vk Message-ID: Subject: Defining a type and a module type recursively From: =?UTF-8?Q?Daniel_B=C3=BCnzli?= To: caml-list@inria.fr Content-Type: text/plain; charset=UTF-8 X-Spam: no; 0.00; buenzli:01 sig:01 recursively:01 recursively:01 define:02 defining:02 module:03 module:03 daniel:04 daniel:04 somewhere:06 mentions:11 end:12 issue:14 type:14 Hello, I have now side stepped the issue but I wonder. Is it possible to define a type and a module type recursively ? E.g., something like type 'a t = 'a * (module T) and module type T = sig ... (* mentions 'a t somewhere *) ... end Thanks, Daniel