Using more type constraints.