"""
Generics are defined here to avoid repetition throughout the library
"""

from typing import TypeVar

A = TypeVar("A")
B = TypeVar("B")
C = TypeVar("C")
D = TypeVar("D")
E = TypeVar("E")
F = TypeVar("F")
G = TypeVar("G")
H = TypeVar("H")

Ret = TypeVar("Ret")  # generic return type

FailT = TypeVar("FailT")
