C#だと最近null propagation operatorっていう演算子が入って
mayBeNull() ?. nullの場合 .? 単に .? nullが .? 返る();
みたいな書き方でMaybeモナドのようなことを実現できるようになったけど
これ自体がイケてるかどうかは別にして、本来プログラミング言語が目指すべきところはこっちだと思うんだよね
それを安易にハックに頼っちゃうと際限なく複雑になってしまう