module Utils = // (...) type MaybeBuilder() = member this.Bind(x,f) = Option.bind f x member this.Return(x) = Some x let maybe = new MaybeBuilder() // inny moduł type FileViewModel = // (...) member this.OriginalNumSamples with get() = Utils.maybe { let! f = file return Signal.length f.spectrogram.samples // alternatywą by było type FileViewModel = // (...) member this.OriginalNumSamples with get() = Option.map ( fun (f: File.Raw) -> Signal.length f.spectrogram.samples ) file