> Thanks Don. Maybe both for me and others in order to take the fight to the
> Klingons and other Baddies, please explain the "typefulness" protection
> that "newtype" affords over the "Klingon " "type" ... In the code that I
> contributed to the library, I like to think that I used "newtype"
> appropriately but not perhaps with full understanding.
>
> Thanks, Vasili
>
> On Mon, Oct 6, 2008 at 12:37 AM, Don Stewart <[1]
dons@galois.com> wrote:
>
> vigalchin:
> > Hello,
> >
> > I am reading some extant Haskell code that uses Posix
> signals.... I am
> > confused by the motivation of the following ...
> >
> > type [1]Signal = [2]CInt
> > [3]nullSignal :: [4]Signal
> > [5]internalAbort :: [6]Signal
> > [7]sigABRT :: [8]CInt
> > [9]realTimeAlarm :: [10]Signal
> > [11]sigALRM :: [12]CInt
> > [13]busError :: [14]Signal
> > [15]sigBUS :: [16]CInt
> >
> > OK .. "type" is really just a synomym and doesn't invoke type
> checking
> > like "data" type declarations do .. so why don't we have all the
> "CInts"
> > substituted by "Signal"? I.e. what did I miss?
>
> Looks like it should all be Signal, and probably should be using a
> newtype, to prevent funky tricks. The Posix layer is a bit crufty.
> -- Don
>
> References