26 lines
874 B
Racket
26 lines
874 B
Racket
#lang scribble/manual
|
|
|
|
@(require scribble-enhanced/manual-form)
|
|
|
|
@(require (for-label typed/racket/base
|
|
"graph.lp2.rkt"))
|
|
|
|
@title{Low-level graph macro}
|
|
|
|
|
|
@defform[(graph …)
|
|
#:result graph-id
|
|
#:contracts ([old-type (syntax-for type)]
|
|
[from (and/c identifier? (syntax-for type))]
|
|
[to (syntax-for type)])]{
|
|
…}
|
|
|
|
@defform[(graph-id #:roots [node args] …)
|
|
#:result (List (Vectorof node/promise-type) …)
|
|
#:contracts ([args (Listof (List arg-type …))])]{
|
|
Create a graph instance, starting from the given root
|
|
arguments. Each element of the returned list contains a
|
|
vector with all the graph roots for that node type, in the
|
|
same order as their arguments were given. If there are some
|
|
duplicates in the lists of arguments, the same node will be
|
|
returned for both.} |