/**
 * Tag
 * Uniquely tag a function. This is used to identify actions
 */

let uid = 0

module.exports = function tag (fn) {
  let name = fn.name || 'microcosm_action'
  let mark = uid++

  if (!fn.hasOwnProperty('toString')) {
    fn.toString = () => `${ name }_${ mark }`
  }

  return fn
}

@@ -120,16 +120,216 @@
  (fn) %7B%0A
+  if (process.env.NODE_ENV !== 'production' && (typeof fn !== 'function')) %7B%0A    throw TypeError('Attempted to tag an action, but the provided value is not a function. Instead got ' + typeof fn)%0A  %7D%0A%0A
   let na

Add developer warning in tag when not a function