Like dicussed in the last commit message: IResult has now been renamed to ICanBeAFailure and IResult<T> has been renamed to ICanBeAResult and now implements ICanBeAFailure. This is not that nice in terms of semantics (because something that has a result must not be a failure, so the concerns of those mix a bit), but should reduce headaches later.
Merge remote-tracking branch 'origin/dev'