refactor types in SL+LPO constraint