fn ternary_apply<T>(
    args: (&Bdd, &Bdd, &Bdd),
    flips: (Option<BddVariable>, Option<BddVariable>, Option<BddVariable>),
    flip_out_if: Option<BddVariable>,
    terminal_lookup: T
) -> Bdd where
    T: Fn(Option<bool>, Option<bool>, Option<bool>) -> Option<bool>,