Exec(a(), Open(b(), Exist(path) ? path : cancel, c()), d())
じゃあこれでExist(path)がfalseになったときはExecも実行されないの?
aやbやcやdは?
無駄に複雑になりすぎる