type-strictness really sucks