也使 F# 类型成为度量?

Making a F# type a measure as well?

我正在阅读 Friendly F#,书中有这段代码

[<Measure>]
type Vector2<[<Measure>]'a> =
{
   X: float<'a>
   Y: float<'a>
}

因此此代码旨在与 F# 和 VS 2010 一起使用。我目前使用的是 VS2012。

VS2012 显示错误。这是 F# 版本问题吗?如果是这样,正确的方法是什么?

显示的错误是:

Error 4 A type definition requires one or more members or other declarations. If you intend to define an empty class, struct or interface, then use 'type ... = class end', 'interface end' or 'struct end'.

看起来像是缩进问题:

type Vector2<[<Measure>]'a> =
    {
       X: float<'a>
       Y: float<'a>
    }

[<Measure>] type kg

{ X = 13.<kg> ; Y = 10.<_> }

// val it : Vector2<kg> = { X = 13.0; Y = 10.0 }