ixIter :: (AlphaEq dom dom dom [(VarId, VarId)], Monad m)
    => Int
    -> (ASTF dom a -> m (ASTF dom a))
    -> (ASTF dom a -> m (ASTF dom a))
fixIter 0 f a = return a

fixIter :: (AlphaEq dom dom dom [(VarId, VarId)], Monad m)
    => Int
    -> (ASTF dom a -> m (ASTF dom a))
    -> (ASTF dom a -> m (ASTF dom a))
fixIter 0 f a = return a
fixIter 0 f a = return a