 }
 
 
-extension CompassDirection {
+extension CompassDirection16 {
 
 	public var mediumName: String {
 		switch self {

public enum CompassDirection {
	case North
	case NNE
	case NE


public extension Angle {

	public var compassDirection8: CompassDirection8 {
		var normalizedDegrees = degrees % 360  // -360 ..< 360
		if normalizedDegrees < 0 {
			normalizedDegrees += 360  // 0 ..< 360
		}

		// half sector before, half sector after needle point
		let sector = Int(round(8 * normalizedDegrees / 360) - 0.5) // 0 ..< 8

		switch sector {
		case 0:  return .North
		case 1:  return .NE
		case 2:  return .East
		case 3:  return .SE
		case 4:  return .South
		case 5:  return .SW
		case 6:  return .West
		case 7:  return .NW
		default: return .North
		}
	}


	public var compassDirection16: CompassDirection16 {
		var normalizedDegrees = degrees % 360  // -360 ..< 360
		if normalizedDegrees < 0 {
			normalizedDegrees += 360  // 0 ..< 360
		}

		// half sector before, half sector after needle point
		let sector = Int(round(16 * normalizedDegrees / 360) - 0.5) // 0 ..< 16

		switch sector {
		case 0:  return .North
