0 IsAtomicNr : Bits8 -> Type Proof that a number is in the range [1,118]
Totality: total
Visibility: public exportrecord AtomicNr : Type A refined integer in the range [1,118]
Totality: total
Visibility: public export
Constructor: MkAtomicNr : (value : Bits8) -> {auto 0 _ : IsAtomicNr value} -> AtomicNr
Projections:
0 .prf : ({rec:0} : AtomicNr) -> IsAtomicNr (value {rec:0}) .value : AtomicNr -> Bits8
Hints:
Eq AtomicNr Ord AtomicNr Show AtomicNr
.value : AtomicNr -> Bits8- Totality: total
Visibility: public export value : AtomicNr -> Bits8- Totality: total
Visibility: public export 0 .prf : ({rec:0} : AtomicNr) -> IsAtomicNr (value {rec:0})- Totality: total
Visibility: public export 0 prf : ({rec:0} : AtomicNr) -> IsAtomicNr (value {rec:0})- Totality: total
Visibility: public export record MassNr : Type- Totality: total
Visibility: public export
Constructor: MkMassNr : (value : Bits16) -> {auto 0 _ : FromTo 1 511 value} -> MassNr
Projections:
0 .prf : ({rec:0} : MassNr) -> FromTo 1 511 (value {rec:0}) .value : MassNr -> Bits16
Hints:
Eq MassNr Interpolation MassNr Ord MassNr Show MassNr
.value : MassNr -> Bits16- Totality: total
Visibility: public export value : MassNr -> Bits16- Totality: total
Visibility: public export 0 .prf : ({rec:0} : MassNr) -> FromTo 1 511 (value {rec:0})- Totality: total
Visibility: public export 0 prf : ({rec:0} : MassNr) -> FromTo 1 511 (value {rec:0})- Totality: total
Visibility: public export MinAbundanceValue : Double- Totality: total
Visibility: public export IsAbundance : Double -> Bool- Totality: total
Visibility: public export record Abundance : Type- Totality: total
Visibility: public export
Constructor: MkAbundance : (value : Double) -> {auto 0 _ : Holds IsAbundance value} -> Abundance
Projections:
0 .prf : ({rec:0} : Abundance) -> Holds IsAbundance (value {rec:0}) .value : Abundance -> Double
Hints:
Eq Abundance Interpolation Abundance Monoid Abundance Ord Abundance Semigroup Abundance Show Abundance
.value : Abundance -> Double- Totality: total
Visibility: public export value : Abundance -> Double- Totality: total
Visibility: public export 0 .prf : ({rec:0} : Abundance) -> Holds IsAbundance (value {rec:0})- Totality: total
Visibility: public export 0 prf : ({rec:0} : Abundance) -> Holds IsAbundance (value {rec:0})- Totality: total
Visibility: public export multAbundance : Abundance -> Abundance -> Abundance- Totality: total
Visibility: public export MaxMolecularMass : Double Molecular mass in g/mol
The total mass of ordinary matter of the universe is assumed to be
approximately 1.5 * 10^50 kg, so we probably shouldn't exceed that by too
much.
Totality: total
Visibility: public exportIsMolecularMass : Double -> Bool- Totality: total
Visibility: public export record MolecularMass : Type Molecular mass (or molecular weight) in g/mol
Totality: total
Visibility: public export
Constructor: MkMolecularMass : (value : Double) -> {auto 0 _ : Holds IsMolecularMass value} -> MolecularMass
Projections:
0 .prf : ({rec:0} : MolecularMass) -> Holds IsMolecularMass (value {rec:0}) .value : MolecularMass -> Double
Hints:
Cast MolecularMass MolarMass Cast MolarMass MolecularMass Eq MolecularMass Interpolation MolecularMass Monoid MolecularMass Ord MolecularMass Semigroup MolecularMass Show MolecularMass
.value : MolecularMass -> Double- Totality: total
Visibility: public export value : MolecularMass -> Double- Totality: total
Visibility: public export 0 .prf : ({rec:0} : MolecularMass) -> Holds IsMolecularMass (value {rec:0})- Totality: total
Visibility: public export 0 prf : ({rec:0} : MolecularMass) -> Holds IsMolecularMass (value {rec:0})- Totality: total
Visibility: public export addMolecularMass : MolecularMass -> MolecularMass -> MolecularMass- Totality: total
Visibility: public export multMolecularMass : Nat -> MolecularMass -> MolecularMass- Totality: total
Visibility: public export record MolarMass : Type Molar mass in Da
Totality: total
Visibility: public export
Constructor: MkMolarMass : (value : Double) -> {auto 0 _ : Holds IsMolecularMass value} -> MolarMass
Projections:
0 .prf : ({rec:0} : MolarMass) -> Holds IsMolecularMass (value {rec:0}) .value : MolarMass -> Double
Hints:
Cast MolecularMass MolarMass Cast MolarMass MolecularMass Eq MolarMass Interpolation MolarMass Monoid MolarMass Ord MolarMass Semigroup MolarMass Show MolarMass
.value : MolarMass -> Double- Totality: total
Visibility: public export value : MolarMass -> Double- Totality: total
Visibility: public export 0 .prf : ({rec:0} : MolarMass) -> Holds IsMolecularMass (value {rec:0})- Totality: total
Visibility: public export 0 prf : ({rec:0} : MolarMass) -> Holds IsMolecularMass (value {rec:0})- Totality: total
Visibility: public export molarMass : Double -> MolarMass- Totality: total
Visibility: export addMolarMass : MolarMass -> MolarMass -> MolarMass- Totality: total
Visibility: export interface HasMolarMass : Type -> Type- Parameters: a
Methods:
mass : a -> MolarMass Extract the molecular mass of an element or isotope.
In case of an element, this returns the average molar mass
in case of an isotope, it's the same as `exactMass`.
exactMass : a -> MolarMass Extract the exact molecular mass of an element or isotope.
In case of an `Elem`, this returns the exact mass of the most
abundant isotope.
Implementations:
HasMolarMass Elem HasMolarMass Isotope HasMolarMass AromIsotope
mass : HasMolarMass a => a -> MolarMass Extract the molecular mass of an element or isotope.
In case of an element, this returns the average molar mass
in case of an isotope, it's the same as `exactMass`.
Totality: total
Visibility: public exportexactMass : HasMolarMass a => a -> MolarMass Extract the exact molecular mass of an element or isotope.
In case of an `Elem`, this returns the exact mass of the most
abundant isotope.
Totality: total
Visibility: public exportmultByAbundance : Abundance -> MolarMass -> MolarMass- Totality: total
Visibility: export record Charge : Type- Totality: total
Visibility: public export
Constructor: MkCharge : (value : Int8) -> {auto 0 _ : FromTo -15 15 value} -> Charge
Projections:
0 .prf : ({rec:0} : Charge) -> FromTo -15 15 (value {rec:0}) .value : Charge -> Int8
Hints:
Eq Charge Finite Charge Interpolation Charge Ord Charge Show Charge
.value : Charge -> Int8- Totality: total
Visibility: public export value : Charge -> Int8- Totality: total
Visibility: public export 0 .prf : ({rec:0} : Charge) -> FromTo -15 15 (value {rec:0})- Totality: total
Visibility: public export 0 prf : ({rec:0} : Charge) -> FromTo -15 15 (value {rec:0})- Totality: total
Visibility: public export incCharge : Charge -> Charge Increase a charge value by one.
Returns the unmodified input if it is already the maximal valid value.
Totality: total
Visibility: exportdecCharge : Charge -> Charge Decrease a charge value by one.
Returns the unmodified input if it is already the minimal valid value.
Totality: total
Visibility: exportrecord HCount : Type- Totality: total
Visibility: public export
Constructor: MkHCount : (value : Bits8) -> {auto 0 _ : value < 10} -> HCount
Projections:
0 .prf : ({rec:0} : HCount) -> value {rec:0} < 10 .value : HCount -> Bits8
Hints:
Cast e Elem => Cast (Atom e c p r HCount t ch l) Formula Eq HCount Finite HCount HasMolecularMass HCount Interpolation HCount Ord HCount Show HCount
.value : HCount -> Bits8- Totality: total
Visibility: public export value : HCount -> Bits8- Totality: total
Visibility: public export 0 .prf : ({rec:0} : HCount) -> value {rec:0} < 10- Totality: total
Visibility: public export 0 prf : ({rec:0} : HCount) -> value {rec:0} < 10- Totality: total
Visibility: public export data NoH : Type Placeholder for atoms without implicit hydrogens.
We can use this instead of `Unit` (`()`), to signal that an atom
does not have any implicit hydrogens, as oppsed to the implicit
H-count not having been determined yet.
For instance, we can have an implementation of
`Cast (Atom Elem c p r NoH t ch l) Formula`, because here we
do not have to add any implicit hydrogens to such an atom,
while no such implementation should be written for
`Cast (Atom Elem c p r () t ch l) Formula`, because in this case,
the `Unit` tag implies that implicit hydrogens have not been
determined yet.
Totality: total
Visibility: public export
Constructor: HasNoH : NoH
Hints:
Cast e Elem => Cast (Atom e c p r NoH t ch l) Formula Eq NoH HasMolecularMass NoH Ord NoH Show NoH
data Radical : Type Type of radical if any.
Totality: total
Visibility: public export
Constructors:
NoRadical : Radical Singlet : Radical Doublet : Radical Triplet : Radical
Hints:
Eq Radical Finite Radical Ord Radical Show Radical
data Hybridization : Type Kinds of hybridization
Totality: total
Visibility: public export
Constructors:
None : Hybridization Planar : Hybridization S : Hybridization SP : Hybridization SP2 : Hybridization SP3 : Hybridization SP3D1 : Hybridization SP3D2 : Hybridization Tetrahedral : Hybridization Octahedral : Hybridization
Hints:
Cast SmilesAtomAT Hybridization Eq Hybridization Finite Hybridization Ord Hybridization Show Hybridization
data BondOrder : Type- Totality: total
Visibility: public export
Constructors:
Single : BondOrder Dbl : BondOrder Triple : BondOrder
Hints:
Cast SmilesBond BondOrder Cast MolBond BondOrder Cast BondOrder MolBond Cast a BondOrder => Cast (AromBond a) BondOrder Eq BondOrder Interpolation BondOrder Ord BondOrder Show BondOrder
0 ChemRes : List Type -> Type -> Type- Totality: total
Visibility: public export