got basic type inference working for if, cond, started on list blocks