text: // Generated by Melange
  'use strict';
  
  var DequeCore = require("./DequeCore.bs.js");
  var FeatureBack = require("./features/FeatureBack.bs.js");
  var FeatureSequence = require("./features/FeatureSequence.bs.js");
  var FeatureFrontImmutable = require("./features/FeatureFrontImmutable.bs.js");
  
  var fastReverse = /* Reverse */{
    _0: DequeCore.reverse
  };
  
  var include = FeatureSequence.Add({
        toList: DequeCore.toList,
        fromList: DequeCore.fromList,
        fastReverse: fastReverse
      });
  
  var fastGetFirst = /* GetFirstExn */{
    _0: DequeCore.getFirstExn
  };
  
  var fastDropFirst = /* DropFirstExn */{
    _0: DequeCore.dropFirstExn
  };
  
  var fastAddFirst = /* AddFirst */{
    _0: DequeCore.addFirst
  };
  
  var fastRemoveFirst = /* RemoveFirstExn */{
    _0: DequeCore.dropFirstExn
  };
  
  var include$1 = FeatureFrontImmutable.Add({
        toList: DequeCore.toList,
        fromList: DequeCore.fromList,
        isEmpty: DequeCore.isEmpty,
        fastGetFirst: fastGetFirst,
        fastDropFirst: fastDropFirst,
        fastAddFirst: fastAddFirst,
        fastRemoveFirst: fastRemoveFirst
      });
  
  var fastGetLast = /* GetLastExn */{
    _0: DequeCore.getLastExn
  };
  
  var fastAddLast = /* AddLast */{
    _0: DequeCore.addLast
  };
  
  var fastRemoveLast = /* RemoveLastExn */{
    _0: DequeCore.removeLastExn
  };
  
  var include$2 = FeatureBack.Add({
        toList: DequeCore.toList,
        fromList: DequeCore.fromList,
        isEmpty: DequeCore.isEmpty,
        fastGetLast: fastGetLast,
        fastAddLast: fastAddLast,
        fastRemoveLast: fastRemoveLast
      });
  
  var make = DequeCore.make;
  
  var isEmpty = DequeCore.isEmpty;
  
  var length = DequeCore.length;
  
  var init = include.init;
  
  var toCamlList = include.toCamlList;
  
  var fromCamlList = include.fromCamlList;
  
  var toCamlArray = include.toCamlArray;
  
  var fromCamlArray = include.fromCamlArray;
  
  var toMutableArrayList = include.toMutableArrayList;
  
  var fromMutableArrayList = include.fromMutableArrayList;
  
  var toDeque = include.toDeque;
  
  var fromDeque = include.fromDeque;
  
  var every = include.every;
  
  var everyi = include.everyi;
  
  var forEach = include.forEach;
  
  var forEachi = include.forEachi;
  
  var none = include.none;
  
  var nonei = include.nonei;
  
  var some = include.some;
  
  var somei = include.somei;
  
  var filterDrop = include.filterDrop;
  
  var filterDropi = include.filterDropi;
  
  var filterKeep = include.filterKeep;
  
  var filterKeepi = include.filterKeepi;
  
  var map = include.map;
  
  var mapi = include.mapi;
  
  var reverse = include.reverse;
  
  var reduce = include.reduce;
  
  var reducei = include.reducei;
  
  var reduceReverse = include.reduceReverse;
  
  var reduceReversei = include.reduceReversei;
  
  var flatten = include.flatten;
  
  var concat = include.concat;
  
  var concatArray = include.concatArray;
  
  var concatList = include.concatList;
  
  var getFirst = include$1.getFirst;
  
  var getFirstExn = include$1.getFirstExn;
  
  var getFirstN = include$1.getFirstN;
  
  var getFirstNExn = include$1.getFirstNExn;
  
  var dropFirst = include$1.dropFirst;
  
  var dropFirstExn = include$1.dropFirstExn;
  
  var dropFirstN = include$1.dropFirstN;
  
  var dropFirstNExn = include$1.dropFirstNExn;
  
  var match1Exn = include$1.match1Exn;
  
  var match2Exn = include$1.match2Exn;
  
  var match3Exn = include$1.match3Exn;
  
  var match4Exn = include$1.match4Exn;
  
  var match5Exn = include$1.match5Exn;
  
  var match6Exn = include$1.match6Exn;
  
  var match7Exn = include$1.match7Exn;
  
  var match1 = include$1.match1;
  
  var match2 = include$1.match2;
  
  var match3 = include$1.match3;
  
  var match4 = include$1.match4;
  
  var match5 = include$1.match5;
  
  var match6 = include$1.match6;
  
  var match7 = include$1.match7;
  
  var addFirst = include$1.addFirst;
  
  var removeFirst = include$1.removeFirst;
  
  var removeFirstExn = include$1.removeFirstExn;
  
  var removeFirstN = include$1.removeFirstN;
  
  var removeFirstNExn = include$1.removeFirstNExn;
  
  var updateFirst = include$1.updateFirst;
  
  var updateFirstExn = include$1.updateFirstExn;
  
  var getLast = include$2.getLast;
  
  var getLastExn = include$2.getLastExn;
  
  var getLastN = include$2.getLastN;
  
  var getLastNExn = include$2.getLastNExn;
  
  var addLast = include$2.addLast;
  
  var removeLast = include$2.removeLast;
  
  var removeLastExn = include$2.removeLastExn;
  
  var removeLastN = include$2.removeLastN;
  
  var removeLastNExn = include$2.removeLastNExn;
  
  var updateLast = include$2.updateLast;
  
  var updateLastExn = include$2.updateLastExn;
  
  exports.make = make;
  exports.isEmpty = isEmpty;
  exports.length = length;
  exports.init = init;
  exports.toCamlList = toCamlList;
  exports.fromCamlList = fromCamlList;
  exports.toCamlArray = toCamlArray;
  exports.fromCamlArray = fromCamlArray;
  exports.toMutableArrayList = toMutableArrayList;
  exports.fromMutableArrayList = fromMutableArrayList;
  exports.toDeque = toDeque;
  exports.fromDeque = fromDeque;
  exports.every = every;
  exports.everyi = everyi;
  exports.forEach = forEach;
  exports.forEachi = forEachi;
  exports.none = none;
  exports.nonei = nonei;
  exports.some = some;
  exports.somei = somei;
  exports.filterDrop = filterDrop;
  exports.filterDropi = filterDropi;
  exports.filterKeep = filterKeep;
  exports.filterKeepi = filterKeepi;
  exports.map = map;
  exports.mapi = mapi;
  exports.reverse = reverse;
  exports.reduce = reduce;
  exports.reducei = reducei;
  exports.reduceReverse = reduceReverse;
  exports.reduceReversei = reduceReversei;
  exports.flatten = flatten;
  exports.concat = concat;
  exports.concatArray = concatArray;
  exports.concatList = concatList;
  exports.getFirst = getFirst;
  exports.getFirstExn = getFirstExn;
  exports.getFirstN = getFirstN;
  exports.getFirstNExn = getFirstNExn;
  exports.dropFirst = dropFirst;
  exports.dropFirstExn = dropFirstExn;
  exports.dropFirstN = dropFirstN;
  exports.dropFirstNExn = dropFirstNExn;
  exports.match1Exn = match1Exn;
  exports.match2Exn = match2Exn;
  exports.match3Exn = match3Exn;
  exports.match4Exn = match4Exn;
  exports.match5Exn = match5Exn;
  exports.match6Exn = match6Exn;
  exports.match7Exn = match7Exn;
  exports.match1 = match1;
  exports.match2 = match2;
  exports.match3 = match3;
  exports.match4 = match4;
  exports.match5 = match5;
  exports.match6 = match6;
  exports.match7 = match7;
  exports.addFirst = addFirst;
  exports.removeFirst = removeFirst;
  exports.removeFirstExn = removeFirstExn;
  exports.removeFirstN = removeFirstN;
  exports.removeFirstNExn = removeFirstNExn;
  exports.updateFirst = updateFirst;
  exports.updateFirstExn = updateFirstExn;
  exports.getLast = getLast;
  exports.getLastExn = getLastExn;
  exports.getLastN = getLastN;
  exports.getLastNExn = getLastNExn;
  exports.addLast = addLast;
  exports.removeLast = removeLast;
  exports.removeLastExn = removeLastExn;
  exports.removeLastN = removeLastN;
  exports.removeLastNExn = removeLastNExn;
  exports.updateLast = updateLast;
  exports.updateLastExn = updateLastExn;
  /* include Not a pure module */
  