и выполгяются законы
def left_unit[A](fa: F[A]) : bind(fa)(pure) = fa
def right_unit[A, B](f: J[A] => F[B])(ja: J[A]): bind(pure(ja))(f) = f(ja)
def assoc[A, B, C](f: J[A] => F[B])(g: J[B] => F[C])(fa: F[A]) :
bind(bind(fa)(f))(g)) = bind(fa)( ja => bind(f(ja))(g))