Skip to content

Bifunctor

funstruct.typeclasses.bifunctor

Bifunctor — map over both type parameters.

bimap: F[A, B] → (A → C) → (B → D) → F[C, D] left_map: F[A, B] → (A → C) → F[C, B] (derived)

Bifunctor

Bases: BaseTypeclass

bimap + left_map.

Source code in funstruct/typeclasses/bifunctor.py
15
16
17
18
19
20
21
22
class Bifunctor(BaseTypeclass):
    """bimap + left_map."""

    @abstractmethod
    def bimap(self, fa, f: Callable, g: Callable) -> object: ...

    def left_map(self, fa, f: Callable) -> object:
        return self.bimap(fa, f, lambda x: x)