     }
     return false
   }
-#else
+#elseif swift(>=3.2)
   @inline(__always)
   public mutating func storeIfNil(_ reference: T, order: StoreMemoryOrder = .sequential) -> Bool
   {

#else
extension MemoryOrder
{
  @_versioned init(loadOrder: LoadMemoryOrder)
  {
    self = MemoryOrder.init(rawValue: loadOrder.rawValue) ?? .sequential
  }
}
#endif

    }
    return false
  }
#else
  @inline(__always)
  public mutating func storeIfNil(_ reference: T, order: StoreMemoryOrder = .sequential) -> Bool
  {
    let u = Unmanaged.passUnretained(reference)
    if ptr.CAS(nil, u.toOpaque(), .strong, MemoryOrder(order: order))
    {
      _ = u.retain()
      return true
    }
    return false
  }
#endif

#if swift(>=4.2)
