I am not sure, though, whether we want to encourage code that does
dynamic dispatching between a Maybe and boolean types.
Encourage it or discourage it, it will happen. Dynamically typed code isn't just statically typed code with the types unexpressed.