Это реализация по умолчанию для метода.Если ваше объявление экземпляра не содержит явную реализацию (>>)
, это определение будет использоваться.Методы по умолчанию широко распространены, если какой-либо метод может быть реализован с использованием другого метода, но потенциально могут быть более эффективные реализации для некоторых типов данных.
m >>= \_ -> n
означает, что «результат» m
передается функции, котораяигнорирует его аргумент и возвращает n
независимо от того,Это также может быть записано
m >>= const n
В контексте монад с эффектами, это 'do m
, чтобы получить эффекты, но игнорировать возвращаемое значение, затем do n
'.Вот что (>>)
предназначено для этого.