31 lines
1.1 KiB
Plaintext
31 lines
1.1 KiB
Plaintext
#lang racket
|
|
|
|
[<graph-example>
|
|
(define-graph g1
|
|
;; Node types (same):
|
|
[(a [field₁ : (List Foo Bar n-mb/placeholder Baz Quux)]
|
|
[field₂ : (Pairof …c/placeholder …a/placeholder)])]
|
|
[(b [field₃] …)]
|
|
[(c [field₇] …)]
|
|
|
|
[(n-ma [val : a])]
|
|
;[(n-ma1 [val : a])]
|
|
;[(n-ma2 [val : a])]
|
|
[(n-mb [val : (Listof b)])]
|
|
[(n-mc [val : c])]
|
|
;; Mappings: functions from external data to nodes
|
|
[m-n-ma1 (→ (Listof String) n-ma1)
|
|
(n-ma1/incomplete
|
|
(ma (… (m-n-mb some-data) …)
|
|
(cons (m-n-mc more-data)
|
|
(m-n-ma2 other-data))))]
|
|
;[m-n-ma2 (→ String Integer n-ma2) …]
|
|
[m-n-mb (→ Integer n-mb) …]
|
|
[m-n-mc (→ … n-mc) …]
|
|
[ma (→ arg1: (List Foo Bar n-mb/placeholder Baz Quux)
|
|
arg2: (Pairof n-mc/placeholder
|
|
n-ma2/placeholder)
|
|
a)
|
|
(a/incomplete arg1 arg2)]
|
|
[mb (→ ? b) …]
|
|
[mc (→ ? c) …])] |