aboutsummaryrefslogtreecommitdiff
import pymonad.monad  # type: ignore
from _typeshed import Incomplete
from typing import Any, Callable, Generic, TypeVar

S = TypeVar('S')
T = TypeVar('T')

class Maybe(pymonad.monad.Monad, Generic[T]):
    @classmethod
    def insert(cls, value: T) -> Maybe[T]: ...
    def amap(self, monad_value: Maybe[S]) -> Maybe[T]: ...
    def bind(self, kleisli_function: Callable[[S], Maybe[T]]) -> Maybe[T]: ...
    def is_just(self) -> bool: ...
    def is_nothing(self) -> bool: ...
    def map(self, function: Callable[[S], T]) -> Maybe[T]: ...
    def maybe(self, default_value: T, extraction_function: Callable[[S], T]) -> T: ...
    option: Incomplete
    def __eq__(self, other): ...

def Just(value: T) -> Maybe[T]: ...

Nothing: Maybe[Any]

class Option(Maybe[T]): ...

def Some(value: T) -> Option[T]: ...