5. let q0 = (m, f, m, r)
let q1 = tail q0 # <= f ++ reverse r -- |r|借金
let q2 = tail q1
let q3 = tail q2
...
let qm = tail qm-1 # <= force (reverse r) -- 返済期限
ここの時任意のkで分岐が発生したとするとqkからqmまで
分岐先でも二重に実行されることになる。
6.
7. let q0 = (m, f, m, r)
let q0' = q0
let q1 = tail q0 # <= f ++ reverse r -- |r|借金
...
let qm = tail qm-1 # <= force (reverse r) -- 返済期限
let q1' = tail q0' # <= f ++ reverse r -- |r|借金
...
let qm' = tail qm-1' # <= force (reverse r) -- 返済期限