# Documentation with scribble for infix syntax

**URL:** <https://racket.discourse.group/t/documentation-with-scribble-for-infix-syntax/3924>\
**Category:** Questions & Answers\
**Created:** [August 26, 2025, 1:44pm UTC](https://racket.discourse.group/t/documentation-with-scribble-for-infix-syntax/3924 "2025-08-26T13:44:55Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![damien\_mattei](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/damien_mattei/32/2706_2.png) [@damien\_mattei](https://racket.discourse.group/u/damien_mattei)\
**Post date:** [August 26, 2025, 1:44pm UTC](https://racket.discourse.group/t/documentation-with-scribble-for-infix-syntax/3924/1 "2025-08-26T13:44:55Z")

</div>

Hi,

scribble seems to be done only for prefix notation, if i do that:

```scheme
@defform[{name <- value}]{
Assign to the variable @racket[name] the value @racket[value].
}

```

scribble will assume `name` to be the macro name instead of `<-` , this annoying because in the index only `name` will appear.

Is there a way to circumvent this behavior?

Regards,

---

<div class="post-metadata">

**Author:** ![soegaard](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/soegaard/32/19_2.png) [@soegaard](https://racket.discourse.group/u/soegaard)\
**Post date:** [August 26, 2025, 5:20pm UTC](https://racket.discourse.group/t/documentation-with-scribble-for-infix-syntax/3924/2 "2025-08-26T17:20:43Z")

</div>

You need to define your own `definfix` and use that instead of `defform`.  
Check how `defform` is defined in the Scribble sources.

---

<div class="post-metadata">

**Author:** ![damien\_mattei](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/damien_mattei/32/2706_2.png) [@damien\_mattei](https://racket.discourse.group/u/damien_mattei)\
**Post date:** [August 26, 2025, 6:30pm UTC](https://racket.discourse.group/t/documentation-with-scribble-for-infix-syntax/3924/3 "2025-08-26T18:30:16Z")

</div>

i think i find it:

> <https://github.com/racket/scribble/blob/b85339802c3097cc9a02ecf0e7277d00c5645078/scribble-lib/scribble/private/manual-form.rkt#L133>

but the code and the way to modify and integrate it somewhere in scribble is sort of hieroglyphs for me. 😬

update:

but i had find a little hack to put my macro and definitions in the index or left column of the web page:

```scheme
@defthing[⥆ macro]{}

```

---

<div class="post-metadata">

**Author:** ![mflatt](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/mflatt/32/6_2.png) [@mflatt](https://racket.discourse.group/u/mflatt)\
**Post date:** [August 26, 2025, 8:57pm UTC](https://racket.discourse.group/t/documentation-with-scribble-for-infix-syntax/3924/4 "2025-08-26T20:57:07Z")

</div>

The `defform` form supports an `#:id` option. So, you could use

```scheme
@defform[#:id <- {name <- value}]{
Assign to the variable @racket[name] the value @racket[value].
}

```

or have `definfix` expand to that.

---

<div class="post-metadata">

**Author:** ![damien\_mattei](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/damien_mattei/32/2706_2.png) [@damien\_mattei](https://racket.discourse.group/u/damien_mattei)\
**Post date:** [August 26, 2025, 9:17pm UTC](https://racket.discourse.group/t/documentation-with-scribble-for-infix-syntax/3924/5 "2025-08-26T21:17:15Z")

</div>

> [@mflatt](#):
>
> The `defform` form supports an `#:id` option.

Thank you, it fits perfectly.
