.NET Fiddle

FSharp · Script

/Program.fs

    type Line = {a:double; b:double}
    
    let LinesIntersection x y = 
        if x.a <> y.a then 
            Some ((x.b - y.b)/(y.a - x.a), (y.a*x.b - x.a*y.b)/(y.a - x.a))
        else None
    
    let l1 = {a = 2.0; b = -3.0}
    let l2 = {a = -3.0; b = 2.0}
    let l3 = {a = 2.0; b = 4.0}
    
    LinesIntersection l1 l2 |> printfn "%A"
    LinesIntersection l1 l3 |> printfn "%A"
;