got type translation working, proved it preserves well-formed types