import public Data.Double.Boundeddata Probability : TypeP : DoubleBetween 0.0 1.0 -> ProbabilityCast Probability DoubleCast Probability (DoubleBetween 0.0 1.0)Cast (DoubleBetween 0.0 1.0) ProbabilityEq ProbabilityMonoid ProbabilityOrd ProbabilitySemigroup ProbabilityShow ProbabilityfromDouble : (x : Double) -> {auto 0 _ : So ((0.0 <= x) && Delay (x <= 1.0))} -> ProbabilityfromInteger : (n : Integer) -> {auto 0 _ : Either (n = 0) (n = 1)} -> Probability.asDouble : Probability -> Double.value : Probability -> DoubleBetween 0.0 1.0maybeP : Double -> Maybe Probability(/) : (num : Double) -> (den : Double) -> {auto 0 _ : So ((1.0 < num) && Delay (num <= den))} -> Probabilityratio : (num : Nat) -> (den : Nat) -> {auto 0 _ : LTE num den} -> {auto 0 _ : IsSucc den} -> ProbabilitysuccessesRatio : Fin (S den) -> {auto 0 _ : IsSucc den} -> Probability.percent : DoubleBetween 0.0 100 -> Probability(*) : Probability -> Probability -> Probability(/) : Probability -> DoubleBetween 1.0 (1.0 / 0.0) -> Probabilityinv : Probability -> Probability.inv : Probability -> Probability