pipes and seqs have their own functions