typed compiler