using System;
using System.Collections.Generic;
using System.Text;
namespace CategoryTheory
{
/// <summary>
/// Category with equalizer
/// </summary>
public interface IEqualizerCategory : ICategory
{
/// <summary>
/// Gets equalizer of two arrows
/// </summary>
/// <param name="arrow1">First arrow</param>
/// <param name="arrow2">Second arrow</param>
/// <returns>The equalizer</returns>
ICategoryArrow GetEqualizer(ICategoryArrow arrow1, ICategoryArrow arrow2);
/// <summary>
/// Gets arrow to equalizer
/// </summary>
/// <param name="equalizer">The qualizer</param>
/// <param name="arrow">Arrow to object</param>
/// <param name="arrowFromObject1">First arrow from object</param>
/// <param name="arrowFromObject2">Second arrow from object</param>
/// <returns></returns>
ICategoryArrow GetArrowToEqualizer(ICategoryArrow equalizer,
ICategoryArrow arrow, ICategoryArrow arrowFromObject1, ICategoryArrow arrowFromObject2);
}
}