Checking arguments for null in Nemerle: revisited
It's really both elegant and powerful compared to hand-written "if (arg == null) throw new ArgumentNullException(...)" or using the Microsoft contracts library.
Contracts may be bond right to arguments themselves:
Which causes: "Nemerle.Core.AssertionException: assertion ``name != null && name.Length > 0'' failed in file Main.n, line 107: The ``Requires'' contract of parameter `name' ha s been violated." Amazing! :)
However, if checking for null value is what's only needed, there's one more option: the NotNull macro attribute: