# Get proc-doc/names: unsupported procedure contract form

**URL:** <https://racket.discourse.group/t/get-proc-doc-names-unsupported-procedure-contract-form/591>\
**Category:** Questions & Answers\
**Created:** [January 19, 2022, 2:58am UTC](https://racket.discourse.group/t/get-proc-doc-names-unsupported-procedure-contract-form/591 "2022-01-19T02:58:45Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![dannypsnl](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/dannypsnl/32/917_2.png) [@dannypsnl](https://racket.discourse.group/u/dannypsnl)\
**Post date:** [January 19, 2022, 2:58am UTC](https://racket.discourse.group/t/get-proc-doc-names-unsupported-procedure-contract-form/591/1 "2022-01-19T02:58:45Z")

</div>

The following code is a minimal reproducible code

```scheme
#lang at-exp racket/base
(require scribble/srcdoc
         (for-doc scribble/manual ffi/unsafe racket/base))

(provide
 (proc-doc/names
  foo
  (-> string? string?)
  (x)
  @{hi}))
(define (foo x) x)

```

get

```scheme
main.rkt:8:2: proc-doc/names: unsupported procedure contract form (no argument names)
  at: (-> string? string?)
  in: (proc-doc/names foo (-> string? string?) (x) ("hi"))
  location...:
   main.rkt:8:2
  context...:
   /Applications/Racket v8.3/share/pkgs/scribble-lib/scribble/srcdoc.rkt:342:2: proc-doc/names-transformer
   /Applications/Racket v8.3/share/pkgs/scribble-lib/scribble/srcdoc.rkt:127:24
   .../private/map.rkt:40:19: loop
   /Applications/Racket v8.3/share/pkgs/scribble-lib/scribble/srcdoc.rkt:124:0: do-provide/doc
   /Applications/Racket v8.3/collects/racket/provide-transform.rkt:65:2: pre-expand-export
   /Applications/Racket v8.3/collects/racket/private/reqprov.rkt:783:2
   /Applications/Racket v8.3/collects/syntax/wrap-modbeg.rkt:46:4

```

But I search usage of `proc-doc/names`, for example [gui/main.rkt at c2c1f0f1503c010bfc36b96541989803b1f56817 · racket/gui · GitHub](https://github.com/racket/gui/blob/c2c1f0f1503c010bfc36b96541989803b1f56817/gui-lib/framework/main.rkt#L90), I can't get what's difference

```scheme
(proc-doc/names
  text:range? (-> any/c boolean?) (arg)
  @{Determines if @racket[arg] is an instance of the @tt{range} struct.})

```

---

<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:** [January 19, 2022, 2:07pm UTC](https://racket.discourse.group/t/get-proc-doc-names-unsupported-procedure-contract-form/591/2 "2022-01-19T14:07:10Z")

</div>

You need to require `racket/contract/base` to get the binding for `->`. (There error message here definitely needs work!)
