 		dispatcher.dispatch actionInstance
 		return actionInstance
 
+	###
+	# Creates an action instance for dispatching
+	#
+	# @param {Action} action The action to dispatch
+	# @param {mixed} payload Payload for the action
+	###
 	createActionInstance: (action, payload) ->
 		invariant action instanceof Action and action?.type?, 
 			"The action you dispatched does not seem to be an instance of capacitor.Action"
 		new ActionInstance action.type, payload
+
+	###
+	# Generates a request id. Useful for tracking specific requests in components.
+	###
+	generateRequestID: () ->
+		return _requestID++
invariant = require './invariant'
Action = require './action'

_id = 0

class ActionInstance

	constructor: (@type, @payload) ->
		@actionID = _id++
		Object.freeze @

	valueOf: () ->

module.exports = class ActionCreator

	###
	# Dispatches an action through the dispatcher
	#
	# @param {Action} action The action to dispatch
	# @param {mixed} payload Payload for the action
