+;; Foreign record types as types for other foreign records
+(define-foreign-record-type point
+ (make-point x y)
+ point?
+ (x int64 point-x)
+ (y int64 point-y))
+
+(define-foreign-record-type triangle
+ (make-triangle p1 p2 p3)
+ triangle?
+ (p1 point triangle-p1)
+ (p2 point triangle-p2)
+ (p3 point triangle-p3))
+
+;(define tr (make-triangle (make-point 0 10) (make-point -10 5) (make-point 15 -7)))
+;(test-equal -10 (point-x (triangle-p2 tr)))
+