Seq.add_thunk instead of Seq.add; using trampoline