fn animate_discrete<T: Clone>(
    this: &T,
    other: &T,
    procedure: Procedure
) -> Result<T, ()>