diff --git a/collects/plai/datatype.rkt b/collects/plai/datatype.rkt index b518049a4e..f5cc2933ac 100644 --- a/collects/plai/datatype.rkt +++ b/collects/plai/datatype.rkt @@ -184,7 +184,7 @@ 'variant-field #'field))) ... (define set-variant-field! - (lambda-memocontract (v) + (lambda-memocontract (v nv) (contract (f:variant? field/c . -> . void) set-variant*-field! 'set-variant-field! 'use diff --git a/collects/tests/plai/datatype-state.rkt b/collects/tests/plai/datatype-state.rkt new file mode 100644 index 0000000000..0aff696922 --- /dev/null +++ b/collects/tests/plai/datatype-state.rkt @@ -0,0 +1,11 @@ +#lang plai +(require (prefix-in eli: tests/eli-tester)) + +(define-type A (a (x number?))) + +(define an-a (a 10)) + +(eli:test + (a-x an-a) => 10 + (set-a-x! an-a 20) + (a-x an-a) => 20) \ No newline at end of file