null object Design pattern
HTML
<script src="https://rawgit.com/eu81273/jsfiddle-console/master/console.js"></script>
JavaScript
//Maybe Functor
//https://leanpub.com/functional-programming-in-js-with-categories/
var some = (v) => ({
v: v,
map: (f) => some(f(v))
});
var none = () => ({
v: null,
map: (f) => none()
});
some(5)
.map(x => x * 5)
.map(console.log);
none()
.map(x => x * 5)
.map(console.log);