Merge remote-tracking branch 'origin/develop' into develop
Interfaces for monad implementations introduced to provide "type-like" extensibility.