From: K <cq.personal@gmail.com>
To: caml-list@inria.fr
Subject: Re: [Caml-list] module dependency question
Date: Thu, 16 Jul 2026 18:48:19 +0000 [thread overview]
Message-ID: <CACTzTFDVNRT_K4pd+2-QkeEj-jZLMh8+j1QQVm9MqSh2-Xf8rQ@mail.gmail.com> (raw)
In-Reply-To: <ed3b12f5-64e4-496a-a763-a58d0ebd2a80@inria.fr>
[-- Attachment #1: Type: text/plain, Size: 2199 bytes --]
I shouldn't have put it that way! I am deriving signatures from the typed
AST so am using the Env.find_xxx
functions and thus indirectly accessing the signature files.
nonetheless, it seems that, for my purposes, if an externally defined type
is used in a module but its structure remains 'unexamined' throughout that
module, ie. treated abstractly, it is not a meaningful dependency and I
don't need to know anything more about it.
unfortunately an awkward example has occurred to me:
let v= fst@@ M.f()
here the structure of N.t is being revealed but fst being a polymorphic
function means I still have to go to the typexpr
to know that the N.t is involved, which is where I find a Path.t, that it
is global, and can make the appropriate Env.find to compose a signature
item. So there is no typed AST variant term here to garner the Path.t - as
far as I can see,
that N.t is being de-composed has to be detected and then the typexpr of
'fst @@ ...' has to be consulted in order to
know whether a global Path.t is involved. this complicates matters for me.
after all there could be any number of tuple
decomposing functions defined, and what else?!
so I think I need a general way to determine 'is this type being decomposed
in some way', whether it is by tuple projection, record label, variant name
etc...
by the way, why is there no Env.find_extension_constructor function?
I'm sure there's a very good reason (never possible to fully define?) :)
thanks.
On Thu, 16 Jul 2026 at 13:34, Florian Angeletti <florian.angeletti@inria.fr>
wrote:
> What is the motivation for adding the constraint of not opening any other
> files?
> You will need to open the interface of M to discover its dependencies at
> one point or another.
>
> On 16/07/2026 at 17:19, K wrote :
>
> Is iterating over the typexpr the right or reasonable way of uncovering
> that transitive dependency (on type N.t specifically rather than on the
> module N in its entirety) without recourse to opening any other file?
>
> On Thu, 16 Jul 2026 at 13:07, Florian Angeletti <octa@polychoron.fr>
> wrote:
>
>> In your example, `N` will be a dependency of `M` and thus a transitive
>> dependency of the current module.
>>
>
>
[-- Attachment #2: Type: text/html, Size: 3382 bytes --]
prev parent reply other threads:[~2026-07-16 16:58 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-16 14:53 K
2026-07-16 13:07 ` Florian Angeletti
2026-07-16 15:19 ` K
2026-07-16 13:34 ` Florian Angeletti
2026-07-16 18:48 ` K [this message]
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=CACTzTFDVNRT_K4pd+2-QkeEj-jZLMh8+j1QQVm9MqSh2-Xf8rQ@mail.gmail.com \
--to=cq.personal@gmail.com \
--cc=caml-list@inria.fr \
/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