#lang typed/racket (require phc-adt (lib "phc-graph/graph-type.hl.rkt")) (adt-init) (define-graph-type g1 [City [name : String] [streets : (Listof Street)] [citizens : (Listof Person)]] [Street [name : String] [houses : (Listof House)]] [House [owner : Person]] [Person [name : String]] #:invariant City.citizens._ ∈ City.streets._.houses._.owner #:invariant City.citizens._ ∋ City.streets._.houses._.owner) #;(begin-for-syntax (require racket/pretty) (parameterize ([pretty-print-columns 188]) (pretty-print (syntax-local-value #'g1))))