Type inference implemented