 }
 
 extension Complex where Number : AdvancedNumeric {
-    public var sqrt : Complex<Number>? {
+    public var sqrt : Complex<Number> {
         var this = self
         if this.imaginary == 0 {
             if real < 0 {

}

extension Complex where Number : Numeric {
    public var integer: Int? {
        if imaginary != 0 { return nil }
        return real.integer
    }
    

        return Complex((real*real + imaginary*imaginary).sqrt)
    }
    
    public var double: Double {
		assert(imaginary != 0, "imaginary part != 0")
        return real.double
    }

