2010/8/31 michael rice <[email protected]> > > So it's a type constructor, not a type? Could you please provide a simple > example of its usage?
Sure, although I'm sure you've come by some already. -- the identity function id :: a -> a -- often, we write it like this: -- id x = x -- but here we see the relationship between the ananymous function syntax and the function type: id = \x -> x In fact, if you write in prefix form, it is quite familiar: f :: (->) Int Bool e = Either String Float Cheers, Thu > Michael > > --- On Tue, 8/31/10, Vo Minh Thu <[email protected]> wrote: > > From: Vo Minh Thu <[email protected]> > Subject: Re: [Haskell-cafe] On to applicative > To: "michael rice" <[email protected]> > Cc: [email protected] > Date: Tuesday, August 31, 2010, 1:17 PM > > 2010/8/31 michael rice <[email protected]> > > > > "Learn You a Haskell ..." says that (->) is a type just like Either. Where > > can I find its type definition? > > You can't define it *in* Haskell as user code. It is a built-in infix > type constructor (Either or Maybe are type constructors too, not just > types). In fact, if you want to implement a simple, typed functional > language, you'll find it is the only built-in type constructor you > have to implement (as the implementor of the language). > > Also, > Show a => a > is a type too, but you won't find a definition for 'a' or for '=>'. > All those things are defined by the language. > > Cheers, > Thu > _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
