Fixed options, i_options and callable can all be merged into a single callable either yielding depending on seq or yelding constant values
You can also meege it with filters. So you will have only one genetator. All the logic be inside that generator.
You don't need to pass index as separate argument. You can just use length of seq
use empty seq instead of None
todoL use 0 in lookback constraint instead of candidate constraint