/** PURE_IMPORTS_START _concatMap PURE_IMPORTS_END */
import { concatMap } from './concatMap';
export function concatMapTo(innerObservable, resultSelector) {
    return concatMap(function () { return innerObservable; }, resultSelector);
}
//# sourceMappingURL=concatMapTo.js.map
