// Generated by purs version 0.14.5
"use strict";
var Control_Comonad_Env_Trans = require("../Control.Comonad.Env.Trans/index.js");
var Data_Tuple = require("../Data.Tuple/index.js");
var local = function (dict) {
    return dict.local;
};
var comonadAskTuple = {
    ask: Data_Tuple.fst,
    Comonad0: function () {
        return Data_Tuple.comonadTuple;
    }
};
var comonadEnvTuple = {
    local: function (f) {
        return function (v) {
            return new Data_Tuple.Tuple(f(v.value0), v.value1);
        };
    },
    ComonadAsk0: function () {
        return comonadAskTuple;
    }
};
var comonadAskEnvT = function (dictComonad) {
    return {
        ask: function (v) {
            return Data_Tuple.fst(v);
        },
        Comonad0: function () {
            return Control_Comonad_Env_Trans.comonadEnvT(dictComonad);
        }
    };
};
var comonadEnvEnvT = function (dictComonad) {
    return {
        local: function (f) {
            return function (v) {
                return new Data_Tuple.Tuple(f(v.value0), v.value1);
            };
        },
        ComonadAsk0: function () {
            return comonadAskEnvT(dictComonad);
        }
    };
};
var ask = function (dict) {
    return dict.ask;
};
var asks = function (dictComonadAsk) {
    return function (f) {
        return function (x) {
            return f(ask(dictComonadAsk)(x));
        };
    };
};
module.exports = {
    ask: ask,
    local: local,
    asks: asks,
    comonadAskTuple: comonadAskTuple,
    comonadEnvTuple: comonadEnvTuple,
    comonadAskEnvT: comonadAskEnvT,
    comonadEnvEnvT: comonadEnvEnvT
};
