Id represents names that not only have a Name but
also a Type and some additional details (a IdInfo and
one of LocalIdDetails or GlobalIdDetails) that are added, modified and
inspected by various compiler passes. These Var names may
either be global or local, see GHC.Types.Var#globalvslocal