added level polymorphic version of the empty type