public Option <TypeConstruction> ConstructType(params Type[] args) => from tc in Constructor(args.Length) from type in TypeConstructor.construct(tc, args) select type;
public TypeConstruction(TypeConstructor Constructor, Type[] Arguments, Type Constructed) { this.Contructor = Constructor; this.Arguments = Arguments; this.Constructed = Constructed; }