Re: [Haskell-cafe] Newclasses

2013-10-05 Thread Wvv
Stijn van Drongelen wrote > On Fri, Oct 4, 2013 at 10:31 PM, Wvv < > vitea3v@ > > wrote: >> About newclass and compose data, we can do next: >> >>newclass Foo [a] => FooList a where {containerMainipulation=...} >> >>newclass Foo (Set a) => FooSet a where {containerMainipulation=...} >> >>

Re: [Haskell-cafe] Newclasses

2013-10-04 Thread Stijn van Drongelen
On Fri, Oct 4, 2013 at 10:31 PM, Wvv wrote: > Newclasses are something like instances, but out of scope. In a baggage. > So under the hood of GHC, newclasses would be partially filled in dictionaries. We already have too many classes: (...) > > We can't divide all classes to atimic ones. > As

Re: [Haskell-cafe] Newclasses

2013-10-04 Thread Wvv
Newclasses are something like instances, but out of scope. In a baggage. We don't use them for interfere their functions. This why newclasses never overlap each other and between them and any instances. We use newclasses to plug-in/connect to any related class or combine data Replying to you ques

Re: [Haskell-cafe] Newclasses

2013-10-03 Thread John Lato
Apologies, that wasn't finished. I meant to say, does it mean that by writing a BMonad instance a Monad instance would be automatically generated? If so, that seems like it would cause conflicts in many cases. Regardless, I think "newclass" needs to be better specified if you want other people to

Re: [Haskell-cafe] Newclasses

2013-10-03 Thread John Lato
I don't really understand what a "newclass" is supposed to be. On Thu, Oct 3, 2013 at 2:15 PM, Wvv wrote: > > newclass Bind a => Monad a => BMonad a where { (>>=) = (>>-) } I think this means that `BMonad` is supposed to be a new class that has both Bind and Monad in scope, the same as

Re: [Haskell-cafe] Newclasses

2013-10-03 Thread Wvv
Yes, multi-class instances allow us write type Monad a = (Applicative a, Bind a) But at least 1 issue remains: Applicative : pure; Monad: return Bind : (>-); Monad: (>>=) With MultiClassInstances we could write only instance Monad MyMonad where { pure= ...; (>-)= ...} But we d

Re: [Haskell-cafe] Newclasses

2013-10-03 Thread Stijn van Drongelen
On Thu, Oct 3, 2013 at 8:16 AM, Wvv wrote: > > Your first two cases will be fixed in 7.10, as Applicative finally > becomes > a superclass of Monad. > > Sure, newclassses not about Applicative and Monads only. > This question is more wider. > > Must Apply be a superclass of Bind? > Must Bind be a

Re: [Haskell-cafe] Newclasses

2013-10-02 Thread Wvv
> Your first two cases will be fixed in 7.10, as Applicative finally becomes a superclass of Monad. Sure, newclassses not about Applicative and Monads only. This question is more wider. Must Apply be a superclass of Bind? Must Bind be a superclass of Monad? So, must Monad has 2 superclasses at o

Re: [Haskell-cafe] Newclasses

2013-10-02 Thread Stijn van Drongelen
Hi! Your first two cases will be fixed in 7.10, as Applicative finally becomes a superclass of Monad. I haven't really looked at your third case, so I can't comment on that. Your fourth case is something I'd really like to see solved properly (*together* with a better record system), but as you sa