public AtomSymbol(IEnumerable<Annotation> annotations, TypeLookup type, Cardinality cardinality, Identifier name)
            : base(type, cardinality)
        {
            Annotations = Guard.NotNull(annotations, "annotations")
                .GroupBy(x => x.Name)
                .ToDictionary(x => x.Key, x => new ReadOnlyCollection<Annotation>(x.ToList()))
                .ToReadOnlyDictionary();

            Name = Guard.NotNull(name, "name");
        }
 public TypeReference(TypeLookup type, Cardinality cardinality)
 {
     _TypeLookup = Guard.NotNull(type, "type");
     Cardinality = Guard.NotNull(cardinality, "cardinality");
 }