declare % ::= rep(}: >) fun {Repeat Num} rep(fun {$ N} Num end) end fun {Generate Rule} rep(fun {$ N} {Rule N} end) end fun {Nth rep(F) N} %% we know that Seq: rep(}: >) {F N} end fun {Add Seq1 Seq2} fun {$ N} {Nth Seq1 N} + {Nth Seq2 N} end end