+1, but the operator you're looking for in App there would actually be a type level version of (.).

type App a = ExceptT Err $ ReaderT Config $ LogT Text $ IO a

type App = ExceptT Err . ReaderT Config . LogT Text . IO

which would need

type (.) f g x = f (g x)
infixr 9 .

to parse

-Edward

On Tue, Nov 1, 2016 at 7:13 PM, Elliot Cameron <eacameron@gmail.com> wrote:
Folks,

Has there been a discussion about adding a type-level operator "$" that just mimics "$" at the value level?

type f $ x = f x
infixr 0 $

Things like monad transformer stacks would look more "stack-like" with this:

type App = ExceptT Err $ ReaderT Config $ LogT Text IO

Elliot Cameron

_______________________________________________
Libraries mailing list
Libraries@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries