namespace Finn.Types; public record Field(string Name, Type Type); public record Row(Field[] Fields); public abstract record Type() { public record Number() : Type(); public record String() : Type(); public record Param(int Name) : Type(); public record List(Type T) : Type(); public record Record(Row Row) : Type(); public record Variant(Row Row) : Type(); public record Function(Type[] Params) : Type(); }