
5 Feb
2016
5 Feb
'16
2:20 p.m.
Why must ($) be kind-polymorphic? It seems as though there is a small enough base of unboxed code that having e.g. ($#) would be fine. If that won't work, would it be possible to have something like ($) :: forall k a (b :: k) . (a -> b) -> a -> b I don't know if this is possible in Haskell now, but I believe the currently popular dependently typed languages allow this sort of thing.
($) :: forall (r :: RuntimeRep) (a :: *) (b :: TYPE r). (a -> b) -> a -> b