this.CutAVericalLine 0.f || this.CutAVericalLine width ||
this.CutAnHorizontalLine 0.f || this.CutAnHorizontalLine height
- member this.Scale (factor: float32) =
+ member this.Scale (factor: float32) : Ellipse =
Ellipse(this.Cx, this.Cy, this.A * factor, this.B * factor, alpha)
// Approximation of Ramanujan.
type Cell = {
cellClass: CellClass
center: Point
- infectedArea: int
- stainArea: int
+ nucleusArea: int
+ parasiteArea: int
elements: Matrix<byte> }
[<Struct>]
member this.ReturnFrom (x) = x
member this.TryFinally (body, compensation) =
- try this.ReturnFrom(body())
- finally compensation()
+ try
+ this.ReturnFrom(body())
+ finally
+ compensation()
member this.Using (disposable: 'a when 'a :> IDisposable, body) =
let body' = fun () -> body disposable
member this.Return (x) =
Some x
-let maybe = new MaybeBuilder()
\ No newline at end of file
+let maybe = MaybeBuilder()
+
+type Result<'a> =
+ | Success of 'a
+ | Fail of string // Error message.
+
+type ResultBuilder () =
+ member this.Bind (res, f) =
+ match res with
+ | Success value -> f value
+ | fail -> fail
+
+ member this.ReturnFrom (x) = x
+
+let result = ResultBuilder()
\ No newline at end of file