   
   public init(dictionaryLiteral elements: (String, Element)...) {
     self.elements = elements
+  }
+
+  /// Construct a copy of `other`
+  ///
+  /// exists primarily so a Dictionary literal can be passed as an argument
+  public init(_ other: LabeledStructure) {
+    self.elements = other.elements
   }
   
   public init(_ elements: [(String, Element)]) {

  struct Zee2 : CustomReflectable {
    func reflect() -> Mirror {
      return Mirror(
        ["bark": 1, "bite": 0] as LabeledStructure, schema: .Dictionary)
    }
  }
  let z2 = Zee2().reflect()
  expectEqual(.Dictionary, z2.schema)
  expectEqual("[bark: 1, bite: 0]", z2.description)
}


runAllTests()

mirrors.test("ForwardStructure") {
  struct DoubleYou : CustomReflectable {
    func reflect() -> Mirror {
      return Mirror(Set(letters), schema: .MembershipContainer)
    }
  }

  let w = DoubleYou().reflect()
  expectEqual(.MembershipContainer, w.schema)
  expectEqual(count(letters), numericCast(count(w.structure)))
  
  // Because we don't control the order of a Set, we need to do a
