spurious "non-exhaustive" pattern warnings?