type MyClass() = do printfn "(created !)" member self.Print(msg) = printfn "%s" msg let lazyMyClass = lazy (MyClass()) let instance<'dummy> = lazyMyClass.Value [] let main _ = printfn "F#!F#!" instance.Print("First") instance.Print("Second") 0 // Output: // F#!F#! // (created !) // First // Second