// Generated by purs version 0.14.5
"use strict";
var Control_Category = require("../Control.Category/index.js");
var Data_Monoid = require("../Data.Monoid/index.js");
var Data_Semigroup = require("../Data.Semigroup/index.js");
var Op = function (x) {
    return x;
};
var semigroupoidOp = {
    compose: function (v) {
        return function (v1) {
            return function ($9) {
                return v1(v($9));
            };
        };
    }
};
var semigroupOp = function (dictSemigroup) {
    return Data_Semigroup.semigroupFn(dictSemigroup);
};
var newtypeOp = {
    Coercible0: function () {
        return undefined;
    }
};
var monoidOp = function (dictMonoid) {
    return Data_Monoid.monoidFn(dictMonoid);
};
var contravariantOp = {
    cmap: function (f) {
        return function (v) {
            return function ($10) {
                return v(f($10));
            };
        };
    }
};
var categoryOp = {
    identity: Control_Category.identity(Control_Category.categoryFn),
    Semigroupoid0: function () {
        return semigroupoidOp;
    }
};
module.exports = {
    Op: Op,
    newtypeOp: newtypeOp,
    semigroupOp: semigroupOp,
    monoidOp: monoidOp,
    semigroupoidOp: semigroupoidOp,
    categoryOp: categoryOp,
    contravariantOp: contravariantOp
};
