This function is a weird one, why doesn't its type signature match the function?