type Foo<'a>(element : 'a) = member this.Copy () = Bar.Create element and Bar = static member Create<'a>(element : 'a) : Foo<'a> = Foo(element) //' do let f = Foo(42) stdout.WriteLine (f.GetType().FullName)