See TypedSmalltalk.