typedef Observable = { function flatten():Stream; } typedef Stream = { function flatten():Stream; function takeUntilBy(otherObs:Observable):Stream; } class Main1 { public static function main() { var mouseMoves : Stream = null; mouseMoves.takeUntilBy(mouseMoves); } }