I’m not sure if this has been proposed already, but after writing PS for ~7 months now, I find that the bit of syntactic sugar I find myself wanting most is a shorter way to write.
a = Proxy :: Proxy Int
I’m not sure if this has been proposed already, nor do I know what would be the best solution. Some candidates:
With perhaps the same operatoin at the type level.
I think this would make code that makes heavy use of proxies easier to write and read.
z = @Int foo :: forall z x. (@z -> x) -> x foo i = i @z
z = Proxy :: Proxy Int foo :: forall z x. ((Proxy :: Proxy z) -> x) -> x foo i = i (Proxy :: Proxy z)
Thoughts? If this seems reasonable, I can take a crack at a PR (it’d be my first to
purescript/purescript … gulp …).