$ package:numeric-prelude
Application operator. This operator is redundant, since ordinary
application
(f x) means the same as
(f $ x).
However,
$ has low, right-associative binding precedence, so it
sometimes allows parentheses to be omitted; for example:
f $ g $ h x = f (g (h x))
It is also useful in higher-order situations, such as
map
($ 0) xs, or
zipWith ($) fs xs.
Note that
($) is levity-polymorphic in its result
type, so that
foo $ True where
foo :: Bool ->
Int# is well-typed.
Strict (call-by-value) application operator. It takes a function and
an argument, evaluates the argument to weak head normal form (WHNF),
then calls the function with that value.
Replace all locations in the input with the same value. The default
definition is
fmap . const, but this may be
overridden with a more efficient version.
Using
ApplicativeDo: '
a <$ bs' can be
understood as the
do expression
do bs
pure a
with an inferred
Functor constraint.