Just put NoImplicitPrelude into your .cabal file or put {-# LANGUAGE NoImplicitPrelude #-} at the top of ever file. I use Protolude for example: stephendiehl.com/posts/protolude.html
Interesting, do you have more info about this?
For example this: head . fmap f = f . head. If f bottoms on the second element in the list, the left will bottom and the right not. In a lazy language both won't.
I don't think it's necessary
Bottom is just the name for crashes (which is different than errors), ie non-recoverable, like panic!() in Rust. Strict languages don't need to bother, because a crash will just instantly crash the program. In a lazy language this is not the case, so you need a name to talk about this behavior.
Just put
NoImplicitPrelude
into your.cabal
file or put{-# LANGUAGE NoImplicitPrelude #-}
at the top of ever file. I useProtolude
for example: stephendiehl.com/posts/protolude.htmlFor example this:
head . fmap f = f . head
. Iff
bottoms on the second element in the list, the left will bottom and the right not. In a lazy language both won't.Bottom is just the name for crashes (which is different than errors), ie non-recoverable, like
panic!()
in Rust. Strict languages don't need to bother, because a crash will just instantly crash the program. In a lazy language this is not the case, so you need a name to talk about this behavior.Ah, sorry, I meant "fully functional programming" isn't necessary, not bottom :-)