// Generated by purs version 0.14.5
"use strict";
var $foreign = require("./foreign.js");
var Data_Functor = require("../Data.Functor/index.js");
var Effect = require("../Effect/index.js");
var modify$prime = $foreign.modifyImpl;
var modify = function (f) {
    return modify$prime(function (s) {
        var s$prime = f(s);
        return {
            state: s$prime,
            value: s$prime
        };
    });
};
var modify_ = function (f) {
    return function (s) {
        return Data_Functor["void"](Effect.functorEffect)(modify(f)(s));
    };
};
module.exports = {
    "modify'": modify$prime,
    modify: modify,
    modify_: modify_,
    "new": $foreign["new"],
    newWithSelf: $foreign.newWithSelf,
    read: $foreign.read,
    write: $foreign.write
};
