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

> unsafePerformIO (printLn ...)

This repetitive talking point is getting boring. Go figure whether it's tracked now:

    {-# LANGUAGE Safe #-}
    -distrust-all-packages

> What meaningful information does this signature says to me? That it does some IO? That's an extremely useless information, especially if most of your code is IO something.

That's an extremely narrow view which you wouldn't have if you ever tried to implement a safe sandboxed environment.

> What granularity does IO have? Does [...] throws any exceptions? Maybe, maybe not.

what does it have to do with tracked parallel mutations?

> Neither is prudent in real world, neither gives more value than takes

define prudent and define real-world.

> It doesn't matter if it allocates or logs

have you heard about referential transparency? It's the thing your "theorem prover" example does not have.




> That's an extremely narrow view which you wouldn't have if you ever tried to implement a safe sandboxed environment.

That is, an environment without effects? In Haskell you could't do so, since pure functions allocate, throw exceptions, trigger GC etc.

> have you heard about referential transparency? It's the thing your "theorem prover" example does not have.

Of course it's.

    conj "A" "B"
can be safely replaced by "A /\ B"




Join us for AI Startup School this June 16-17 in San Francisco!

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

Search: