This is used for representing a unification variable in our type during type unification. For example, this allows us to have a [?1] or a map{?1:[?2]} and so on...