// Generated by purs version 0.14.5
"use strict";
var Data_Bounded = require("../Data.Bounded/index.js");
var Data_Ord = require("../Data.Ord/index.js");
var Data_Show = require("../Data.Show/index.js");
var Max = function (x) {
    return x;
};
var showMax = function (dictShow) {
    return {
        show: function (v) {
            return "(Max " + (Data_Show.show(dictShow)(v) + ")");
        }
    };
};
var semigroupMax = function (dictOrd) {
    return {
        append: function (v) {
            return function (v1) {
                return Data_Ord.max(dictOrd)(v)(v1);
            };
        }
    };
};
var newtypeMax = {
    Coercible0: function () {
        return undefined;
    }
};
var monoidMax = function (dictBounded) {
    return {
        mempty: Data_Bounded.bottom(dictBounded),
        Semigroup0: function () {
            return semigroupMax(dictBounded.Ord0());
        }
    };
};
var eqMax = function (dictEq) {
    return dictEq;
};
var ordMax = function (dictOrd) {
    return {
        compare: function (v) {
            return function (v1) {
                return Data_Ord.compare(dictOrd)(v)(v1);
            };
        },
        Eq0: function () {
            return eqMax(dictOrd.Eq0());
        }
    };
};
module.exports = {
    Max: Max,
    newtypeMax: newtypeMax,
    eqMax: eqMax,
    ordMax: ordMax,
    semigroupMax: semigroupMax,
    monoidMax: monoidMax,
    showMax: showMax
};
