82 lines
1.5 KiB
Racket
82 lines
1.5 KiB
Racket
#lang typed/racket
|
|
|
|
#|(require
|
|
"graph.lp2.rkt"
|
|
"../type-expander/type-expander.lp2.rkt")
|
|
(define-graph g2
|
|
[a [v : Number] [w : b] ((ma) (a 1 (mb)))]
|
|
[b [v : String] ((mb) (frob) (b "b"))])
|
|
(define (frob)
|
|
: (g2 b)
|
|
(error "niy!"))|#
|
|
|
|
;#|
|
|
#|
|
|
(module mm typed/racket
|
|
(require ;(submod "graph.lp2.rkt" test)
|
|
"graph.lp2.rkt"
|
|
"../type-expander/type-expander.lp2.rkt")
|
|
|
|
(provide g2)
|
|
|
|
(define-graph g2
|
|
[a [v : Number] [w : b] ((ma) (a 1 (mb)))]
|
|
[b [v : String] ((mb) (frob) (b "b"))])
|
|
(define (frob)
|
|
: (g2 b)
|
|
(error "niy!")))
|
|
|
|
(require "graph.lp2.rkt"
|
|
"../type-expander/type-expander.lp2.rkt"
|
|
'mm)
|
|
|
|
(λ ([x : (g2 b)]) x)
|
|
(λ ([x : (g2 a)]) x)
|
|
|#
|
|
|
|
#|
|
|
(require "../type-expander/type-expander.lp2.rkt")
|
|
(require "graph.lp2.rkt")
|
|
|
|
(define-graph g2 [a [v : Number] ((ma) (a 1))])
|
|
|#
|
|
|
|
(require "graph-5-multi-ctors.lp2.rkt")
|
|
(require "../lib/low.rkt"
|
|
"graph.lp2.rkt"
|
|
"get.lp2.rkt"
|
|
"../type-expander/type-expander.lp2.rkt"
|
|
"../type-expander/multi-id.lp2.rkt")
|
|
|
|
(define-graph/multi-ctor gm ([a [b1 : b] [b2 : b] [v : Number]]
|
|
[b [a : a] [s : String] [v : Number]])
|
|
[(r [v : Number] [w : String])
|
|
: a
|
|
(a (bx (if (> 0 v) (sub1 v) (+ v (string-length w))))
|
|
(by (if (> 0 v) (sub1 v) (+ v (string-length w))) "xyz")
|
|
v)]
|
|
[(bx [v : Number])
|
|
: b
|
|
(b (r v) "x" v)]
|
|
[(by [v : Number] [w : String])
|
|
: b
|
|
(b (r v) "y" (+ v (string-length w)))])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|