# STATUS: Unfinished

throw new Error "unimplemented"



# Type = require "./Type"
# assert = require "./internal/assert"

# Required = Type
# 	name: "Required"
# 	kind: Type
# 	initializer: (valueTypes...) ->
# 		assert !Required.isTypeOf valueType
# 	external:


# Required = (valueTypes...) ->
# 	assert valueType.__required__ isnt true, "Required(...) can't wrap types that are already required."
# 	type = Type
# 		name: "Required"
# 		props:
# 			valueType: valueType
# 			isType: _isEqualToType
# 			isRequired: Property { value: true }

# module.exports = Required

# _isEqualToType = (type) -> @valueType.isType type
