moon = require "moon"

return class clone
	new: =>
	clone: =>
		c = @@!
		moon.mixin_table c, @
		c

Return a method for the mixin instead of a class
moon = require "moon"

return (t) ->
	clone = class
		clone: =>
			c = @@!
			moon.mixin_table c, @
	moon.mixin t, clone