DependentlyTypedSelectionMonad