data Maybe a = Just a | Nothing
これが「成否」のコンテキストなんだけど。

「成否」というコンテキストの中での値が、「否」なら値なし、「成」ならa型の値。
これは抽象データ「型」でしょ?
この抽象データ型は、a型の値に「成否」コンテキストを付与してる。
別に難しいことじゃないよね。