Skip to content

OxCaml: support for kind abbreviations - #1467

Open
art-w wants to merge 2 commits into
ocaml:masterfrom
art-w:oxcaml-kind
Open

OxCaml: support for kind abbreviations#1467
art-w wants to merge 2 commits into
ocaml:masterfrom
art-w:oxcaml-kind

Conversation

@art-w

@art-w art-w commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

This PR adds support for rendering and linking to kind abbreviations (this introduces a new namespace, similar to types, so a lot of mechanical changes are required!).

As we are currently testing with OxCaml-minus31, there's a small inconvenience that one has to write an explicit [@@ocaml.doc "..."] to document kind_ abbreviation as the parser was missing an add_docs_attrs ( https://github.com/oxcaml/oxcaml/blob/5.2.0minus-31/parsing/parser.mly#L4123-L4134 ). The oxcaml parser has since been fixed so we'll be able to clean up the test in the near future :)

Fix #1443

@panglesd panglesd left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Odoc references have this quite particular semantic that they can be "forward reference". So for instance:

type t
(** Abstract but can be created with {!v} *)

val v : unit -> t

The reference to v is made before v is defined.

As a result, in the following example:

kind_ to_be_shadowed = value mod portable

module X : sig
  type t : to_be_shadowed

  kind_ to_be_shadowed = value_or_null mod non_null global
end

When clicking on to_be_shadowed associated to the type t, odoc redirects to the second abbrev, value_or_null mod non_null global. I believe the first one, value mod portable, is the one oxcaml would use.

I'll think about what other path you could use. (But tell me if this example is wrong!)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support OxCaml kind_ definition

2 participants