// we can set up commands to be run
Mercurial.gamepad1().a()
	// runs on the rising edge of button a
	.onTrue(new Lambda("command-name"))
	// runs on the falling edge of button a
	.onFalse(new Lambda("command-name"))
	// runs on the rising edge of button a, until the falling edge, then ends naturally
	.whileTrue(new Lambda("command-name"))
	// runs on the falling edge of button a, until the rising edge, then ends naturally
	.whileFalse(new Lambda("command-name"))
	// runs on the rising edge of button a, reschedules if it ends early, until the falling edge, then ends naturally
	.untilFalse(new Lambda("command-name"))
	// runs on the falling edge of button a, reschedules if it ends early, until the rising edge, then ends naturally
	.untilTrue(new Lambda("command-name"))
	// runs on the rising edge of button a, cancels on the next rising edge
	.toggleTrue(new Lambda("command-name"))
	// runs on the falling edge of button a, cancels on the next falling edge
	.toggleFalse(new Lambda("command-name"))
	// cancels on the rising edge of a
	.cancelOnTrue(new Lambda("command-name"))
	// cancels on the falling edge of a
	.cancelOnFalse(new Lambda("command-name"));