This sounds fantastic! I think it is very important to provide sufficient documentation in the source to allow newish users who click through to understand as much as they need.
> where State a = state a> pattern State {runState} <- S.runState -> runState> pattern State :: (s -> (a, s)) -> State s aThis will look like the original definitions [1]> newtype State s a = State { runState :: s -> (a, s) }before they became type synonyms> type State s = StateT s Identityby defining pattern synonymsTrac ticket #12767 for further information. [2]
_______________________________________________
Libraries mailing list
Libraries@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries