Чтобы добавить больше деталей к ответу Виталия, вы попытались объявить запись на F #:
type GameWorld =
{
name : string;
entities : GameEntity list
}
С записями вы можете использовать сопоставление с образцом, которое действительно очень эффективно в F #. Если вам нужно взаимодействовать с другими компонентами .NET, написанными на C # или VB.NET, класс может быть хорошим выбором. Также класс позволяет разрешать привязки в их объявлениях, что не относится к записям:
type GameWorld(name: string, entities: GameEntity list) =
let mutable state = 1 // class allows let bindings
member x.Name = name;
member x.Entities = entities