The compiler will warn that the second match case is unused. This is incorrect, because the first case is guarded. It seems that the warning mistakenly assumes that matching first-class modules in patterns makes them irrefutable even in the presence of guards.