Hacker News new | past | comments | ask | show | jobs | submit login

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.



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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: