fsharp: step8: Implemented macros. Deferred cond because it requires exceptions