// Generated by purs version 0.14.5
"use strict";
var Type_Proxy = require("../Type.Proxy/index.js");
var BProxy = (function () {
    function BProxy() {

    };
    BProxy.value = new BProxy();
    return BProxy;
})();
var reflectBoolean = function (dict) {
    return dict.reflectBoolean;
};
var orTrue = {};
var orFalse = {};
var or = function (dictOr) {
    return function (v) {
        return function (v1) {
            return Type_Proxy["Proxy"].value;
        };
    };
};
var notTrue = {};
var notFalse = {};
var not = function (dictNot) {
    return function (v) {
        return Type_Proxy["Proxy"].value;
    };
};
var isBooleanTrue = {
    reflectBoolean: function (v) {
        return true;
    }
};
var isBooleanFalse = {
    reflectBoolean: function (v) {
        return false;
    }
};
var reifyBoolean = function (v) {
    return function (f) {
        if (v) {
            return f(isBooleanTrue)(Type_Proxy["Proxy"].value);
        };
        if (!v) {
            return f(isBooleanFalse)(Type_Proxy["Proxy"].value);
        };
        throw new Error("Failed pattern match at Type.Data.Boolean (line 34, column 1 - line 34, column 88): " + [ v.constructor.name, f.constructor.name ]);
    };
};
var if_ = function (dictIf) {
    return function (v) {
        return function (v1) {
            return function (v2) {
                return Type_Proxy["Proxy"].value;
            };
        };
    };
};
var ifTrue = {};
var ifFalse = {};
var andTrue = {};
var andFalse = {};
var and = function (dictAnd) {
    return function (v) {
        return function (v1) {
            return Type_Proxy["Proxy"].value;
        };
    };
};
module.exports = {
    BProxy: BProxy,
    reflectBoolean: reflectBoolean,
    reifyBoolean: reifyBoolean,
    and: and,
    or: or,
    not: not,
    if_: if_,
    isBooleanTrue: isBooleanTrue,
    isBooleanFalse: isBooleanFalse,
    andTrue: andTrue,
    andFalse: andFalse,
    orTrue: orTrue,
    orFalse: orFalse,
    notTrue: notTrue,
    notFalse: notFalse,
    ifTrue: ifTrue,
    ifFalse: ifFalse
};
