: make-profile ( String String String -- Map )
    # Stack: name email city (city on top)
    map.make
    "city" rot map.set
    "email" rot map.set
    "name" rot map.set
;

: test-profile ( -- )
    "Alice" "alice@example.com" "Portland" make-profile
    dup "name" map.get drop "Alice" string.equal? test.assert
    dup "email" map.get drop "alice@example.com" string.equal? test.assert
    "city" map.get drop "Portland" string.equal? test.assert
;

: update-city ( Map String -- Map )
    "city" swap map.set
;

: test-update ( -- )
    "Bob" "bob@example.com" "Seattle" make-profile
    "Boston" update-city
    "city" map.get drop
    "Boston" string.equal? test.assert
;
