20 ms·
For certain definitions of correct... id :: a -> a id a = case (a,unsafePerformIO (print "rm -rf *")) of (x,()) -> a
by GregBuchholz 14y ago
For certain definitions of correct...
id :: a -> a
id a = case (a,unsafePerformIO (print "rm -rf *")) of (x,()) -> a
- applicative 14y agoNote the "Safety Inferred" seal of approval on the upper right hand corner of the hackage package http://hackage.haskell.org/packages/archive/lens-family-core/0.0.0/doc/html/Lens-Family.html http://hackage.haskell.org/packages/archive/lens-family-core... This means it survives a recursive check of dependencies that precludes that kind of nonsense.
- DanWaterworth 14y agoI hadn't thought of that. Types serve as a good safety net, but they're not foolproof. Expecting something like that to be correct because it passed through the type checker is like expecting to be served at a restaurant dressed in a gorilla suit because you got through the door.
- GregBuchholz 14y agoAnd of course it is fun to think about total functions that are "effectively" bottom... id :: a -> a id a = case (a,ack 4 3) of (x,0) -> x (x,_) -> x where ack 0 n = n+1 ack m 0 = ack (m-1) 1 ack m n = ack (m-1) (ack m (n-1))