Next question is for FP nerds: what words do you use to distinguish normal functions A => B from effectful ones A => F[B]? Calling the first type "pure" is confusing in Scala because we use "pure" to mean referentially transparent, and both flavors are pure in this sense.
Conversation
Maybe “side-effect free”?
1
Both function types are side-effect free, but one has a computational effect in its return type and the other does not.
1
Depends how you define things: I wouldn't call a -> IO b "side-effect free" but I was just offering a woolly suggestion.
1
I'd call `a -> IO b` effectful, but not side-effectful. Side-effects (to me) are things that aren't documented in the types.
Fair enough, I don't know where to get a standard definition from.


