caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: "Soegtrop, Michael" <michael.soegtrop@intel.com>
To: Jonathan Protzenko <jonathan.protzenko@gmail.com>,
	"Petter A. Urkedal" <paurkedal@gmail.com>,
	Gabriel Scherer <gabriel.scherer@gmail.com>
Cc: "caml-list@inria.fr" <caml-list@inria.fr>
Subject: RE: [Caml-list] ocambuild vs ocamldep circular dependencies
Date: Mon, 11 Jul 2016 15:32:33 +0000	[thread overview]
Message-ID: <0F7D3B1B3C4B894D824F5B822E3E5A172CF20C2B@IRSMSX102.ger.corp.intel.com> (raw)
In-Reply-To: <0F7D3B1B3C4B894D824F5B822E3E5A172CF2089A@IRSMSX102.ger.corp.intel.com>

Dear OCaml Users,

a note for those reading this thread later:

I finally used the module rec approach as outlined by Petter A. Urkedal in his previous post, although some people said in various places that this is overkill if you have issues with just a few functions. The module structure implied by the module rec approach was in the end nicer than my original module structure (which didn't work cause of the circular dependency). It was also much less work to restructure the modules than I thought. I tried several other approaches (function references, putting all functions calling each other into one file, treat mli and ml files separately in the build system), but they all appeared to be inferior, either in terms of effort or in terms of clarity, usually both.

So I came to the conclusion that long term there is no issue with properly declaring recursive module structures using "module rec", although it can be quite a pain short term. For resolving some short term hacks (e.g. for experiments), one can still use the function reference approach.

Best regards,

Michael

Intel Deutschland GmbH
Registered Address: Am Campeon 10-12, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de
Managing Directors: Christin Eisenschmid, Christian Lamprechter
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928

  reply	other threads:[~2016-07-11 15:32 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-09 12:53 Soegtrop, Michael
2016-07-09 13:45 ` Gabriel Scherer
2016-07-09 15:16   ` Soegtrop, Michael
2016-07-09 16:16     ` Petter A. Urkedal
2016-07-09 20:09       ` Jonathan Protzenko
2016-07-11  7:59         ` Soegtrop, Michael
2016-07-11 15:32           ` Soegtrop, Michael [this message]
2016-07-11 15:56             ` Fabrice Le Fessant
2016-07-12  8:33   ` Goswin von Brederlow

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0F7D3B1B3C4B894D824F5B822E3E5A172CF20C2B@IRSMSX102.ger.corp.intel.com \
    --to=michael.soegtrop@intel.com \
    --cc=caml-list@inria.fr \
    --cc=gabriel.scherer@gmail.com \
    --cc=jonathan.protzenko@gmail.com \
    --cc=paurkedal@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).