>> Do you have a counter-example of (.) not being function composition in >> the categorical sense? > > Let bot be the function defined by > > bot :: alpha -> beta > bot = bot > > By definition, > > (.) = \ f -> \ g -> \ x -> f (g x) > > Then > > bot . id > = ((\ f -> \ g -> \ x -> f (g x)) bot) id > = (\ g -> \ x -> bot (g x)) id > = \ x -> bot (g x)
I didn't follow the reduction here. Shouldn't id replace g everywhere? This would give = \x -> bot x and by eta reduction = bot > > which /= bot since (seq bot () = bot) but (seq (\ x -> M) () = ()) > regardless of what expression we substitute for M. > Why is seq introduced? _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
