namespace ConsumePlugin open System open System.Collections.Generic open System.Text.Json.Serialization [] [] type InnerTypeWithBoth = { [] Thing : Guid Map : Map ReadOnlyDict : IReadOnlyDictionary Dict : IDictionary ConcreteDict : Dictionary } [] [] type SomeEnum = | Blah = 1 | Thing = 0 [] type measure [] [] type JsonRecordTypeWithBoth = { A : int B : string C : int list D : InnerTypeWithBoth E : string array Arr : int[] Byte : byte Sbyte : sbyte I : int I32 : int32 I64 : int64 U : uint U32 : uint32 U64 : uint64 F : float F32 : float32 Single : single IntMeasureOption : int option IntMeasureNullable : int Nullable Enum : SomeEnum Timestamp : DateTimeOffset Unit : unit } [] [] type FirstDu = | EmptyCase | Case1 of data : string | Case2 of record : JsonRecordTypeWithBoth * i : int [] [] type HeaderAndValue = { Header : string Value : string } [] [] type Foo = { Message : HeaderAndValue option } [] [] type CollectRemaining = { Message : HeaderAndValue option [] Rest : Dictionary } [] [] type OuterCollectRemaining = { [] Others : Dictionary Remaining : CollectRemaining }