     }
     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

  @inline(__always)
  public mutating func take(order: LoadMemoryOrder = .sequential) -> T?
  {
    let pointer = ptr.spinSwap(nil, MemoryOrder(order: order))
    return pointer.map(Unmanaged.fromOpaque)?.takeRetainedValue()
  }
#endif
