StrongLaws
Value members
Concrete methods
def dinaturalityFirst[A, B, C, D](fab: A =>: B, f: C => D)(implicit E: Equal[(A, C) =>: (B, D)], PF: Strong[Function1]): Boolean
lmap (second f) . first == rmap (second f) . first
lmap (second f) . first == rmap (second f) . first
def dinaturalitySecond[A, B, C, D](fab: A =>: B, f: C => D)(implicit E: Equal[(C, A) =>: (D, B)], PF: Strong[Function1]): Boolean
lmap (first f) . second == rmap (first f) . second
lmap (first f) . second == rmap (first f) . second
def firstFirstIsDimap[A, B, C, D](fab: A =>: B)(implicit E: Equal[((A, C), D) =>: ((B, C), D)]): Boolean
first' . first' == dimap assoc unassoc . first' where assoc ((a,b),c) = (a,(b,c)) unassoc (a,(b,c)) = ((a,b),c)
first' . first' == dimap assoc unassoc . first' where assoc ((a,b),c) = (a,(b,c)) unassoc (a,(b,c)) = ((a,b),c)
def mapfstEqualsSecondAndThenMapsnd[A, B, C](fab: A =>: B)(implicit E: Equal[(C, A) =>: B]): Boolean
lmap snd == rmap snd . second'
lmap snd == rmap snd . second'
def secondSecondIsDimap[A, B, C, D](fab: A =>: B)(implicit E: Equal[(D, (C, A)) =>: (D, (C, B))]): Boolean
second' . second' == dimap unassoc assoc . second' where assoc ((a,b),c) = (a,(b,c)) unassoc (a,(b,c)) = ((a,b),c)
second' . second' == dimap unassoc assoc . second' where assoc ((a,b),c) = (a,(b,c)) unassoc (a,(b,c)) = ((a,b),c)