Dimensional correctness as part of type checking has been studied since 1977. Implementations for Ada and C++ were described in 1985 and 1988. Kennedy's 1996 thesis describes an implementation in Standard ML, and later in F#. There are implementations for Haskell, OCaml, and Rust, Python, and a code checker for Fortran. Griffioen's 2019 thesis extended Kennedy's Hindley–Milner type system to support Hart's matrices. McBride and Nordvall-Forsberg show how to use dependent types to extend type systems for units of measure.