On Jan 10, 2008 8:12 PM, David Roundy <[EMAIL PROTECTED]> wrote:
>
> On Thu, Jan 10, 2008 at 08:10:57PM +0000, Sebastian Sylvan wrote:
> > On Jan 10, 2008 8:06 PM, Ketil Malde <[EMAIL PROTECTED]> wrote:
> > > "David Roundy" <[EMAIL PROTECTED]> writes:
> > >
> > > >> > I just want to point out that unsafePerformIO is at the core of the
> > > >> > (safe) bytestring library.  As SPJ et al pointed out, this is crucial
> > > >> > functionality, and is only unsafe if unsafely used.
> > >
> > > >> In Modula-3 modules using hacks must be explicitly marked as UNSAFE. 
> > > >> See
> > > >>   http://www.cs.purdue.edu/homes/hosking/m3/reference/unsafe.html
> > > >>  Maybe this is also an option for Haskell?
> > >
> > > > I don't think this is a good idea.
> > >
> > > I think the point is (should be) to mark functions unsafe when they
> > > may be unsafe to /use/,
> >
> > I think using the IO monad for this works well...
>
> Would you suggest moving head and tail into the IO monad?


They're not really unsafe, though, they just have the potential to
fail (from which you can recover). Unsafe to me mean "may reformat
your harddrive, kill your dog, and break up with your girlfriend".
They really should return a Maybe type, but I recognize that this
would be inconvenient (so would having e.g. integer division returning
Maybe).


> --
> David Roundy
> Department of Physics
> Oregon State University
> _______________________________________________
>
> Haskell-Cafe mailing list
> Haskell-Cafe@haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>



-- 
Sebastian Sylvan
+44(0)7857-300802
UIN: 44640862
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to