auto min = [] (auto a, auto b) { return a < b ? a : b; };
min x y = Data.Bool.bool x y (x > y)
* http://msdn.microsoft.com/en-us/library/windows/desktop/dd75...
* https://stackoverflow.com/questions/22240973/major-and-minor...