def squish_rate_func(func: Callable[([float], float)], a: float=0.4, b: float=0.6) -> Callable[([float], float)]:

    def result(t):
        if (a == b):
            return a
        elif (t < a):
            return func(0)
        elif (t > b):
            return func(1)
        else:
            return func(((t - a) / (b - a)))
    return result
def squish_rate_func(func: Callable[([float], float)], a: float=0.4, b: float=0.6) -> Callable[([float], float)]:

    def result(t):
        if (a == b):
            return a
        elif (t < a):
            return func(0)
        elif (t > b):
            return func(1)
        else:
            return func(((t - a) / (b - a)))
    return result