public SwiftUnboundGenericType(SwiftType dependentType, List <GenericArgument> parms, bool isReference, SwiftName name = null)
     : base(CoreCompoundType.UnboundGeneric, isReference, name)
 {
     DependentType = Ex.ThrowOnNull(dependentType, nameof(dependentType));
     Arguments     = Ex.ThrowOnNull(parms, nameof(parms));
 }
 public SwiftExistentialMetaType(SwiftProtocolListType protocolList, bool isReference, SwiftName name = null)
     : base(CoreCompoundType.MetaClass, isReference, name)
 {
     Protocol = Ex.ThrowOnNull(protocolList, nameof(protocolList));
 }
 public SwiftClassConstructorType(SwiftMetaClassType meta, bool isReference)
     : base(SwiftTupleType.Empty, Ex.ThrowOnNull(meta, "meta"), isReference, false, Decomposer.kSwiftClassConstructorName)
 {
 }
 public SwiftMetaClassType(SwiftClassType classType, bool isReference, SwiftName name = null)
     : base(CoreCompoundType.MetaClass, isReference, name)
 {
     Class = Ex.ThrowOnNull(classType, nameof(classType));
 }
 public SwiftInitializerType(InitializerType initType, SwiftType ret, SwiftClassType owner, SwiftName name)
     : base(SwiftTupleType.Empty, ret, false, false, name, null)
 {
     Owner           = Ex.ThrowOnNull(owner, nameof(owner));
     InitializerType = initType;
 }