Hacker News new | ask | show | jobs
by jweese 4435 days ago
That's why you want

    newtype Kilogram = Kilogram Double
which has no runtime overhead but does enforce the fact the Kilogram is a distinct type.
1 comments

We probably wanna add to it to make it useful

    {-# LANGUAGE GeneralizedNewtypeDeriving #-}
   
    newtype Kilogram = Kilogram Double deriving (Show, Eq, Ord, Num, Real, Fractional, Floating, ...)
And remind ourselves that Haskell is really quite expressive.
Though unfortunately can't handle (mass * accel :: Newton) without swapping out the Prelude.