Надеюсь, простой вопрос: пакет binary
определяет два типа:Get
и Put
. Первый по существу является государственной монадой, а второй по существу является писателем.И состояние, и запись имеют разумные экземпляры MonadFix
, так что я ожидаю, что Get
и Put
также будут.
Get
делает. Put
нет. Итак, возможно ли определить соответствующий экземпляр MonadFix
для Put
(на самом деле дляPutM
)?
Более общий вопрос: как обычно можно проверить, действительно ли экземпляр класса типов удовлетворяет законам этого класса типов?