<div dir="ltr">Exactly what I Was looking for!<div><br></div><div>Thanks! :-D</div><div><br></div><div><br></div><div>Giacomo</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, May 31, 2013 at 12:44 PM, Peter Hall <span dir="ltr">&lt;<a href="mailto:peter.hall@memorphic.com" target="_blank">peter.hall@memorphic.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><a href="http://hackage.haskell.org/packages/archive/ListLike/3.1.4/doc/html/Data-ListLike.html" target="_blank">http://hackage.haskell.org/packages/archive/ListLike/3.1.4/doc/html/Data-ListLike.html</a><span class="HOEnZb"><font color="#888888"><br>
<div><br></div><div>

Peter</div></font></span></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On 31 May 2013 11:16, mukesh tiwari <span dir="ltr">&lt;<a href="mailto:mukeshtiwari.iiitm@gmail.com" target="_blank">mukeshtiwari.iiitm@gmail.com</a>&gt;</span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>Hi Giacomo,<br></div>Data.List can be abstracted using Foldable and Traversable but unfortunately I could not find the functions corresponding to head, take.<br>


<br>Prelude Data.Traversable Data.Foldable&gt; :t Data.Foldable.<br>
Data.Foldable.Foldable    Data.Foldable.concatMap   Data.Foldable.foldl&#39;      Data.Foldable.foldrM      Data.Foldable.minimum     Data.Foldable.sequenceA_<br>Data.Foldable.all         Data.Foldable.elem        Data.Foldable.foldl1      Data.Foldable.forM_       Data.Foldable.minimumBy   Data.Foldable.sequence_<br>



Data.Foldable.and         Data.Foldable.find        Data.Foldable.foldlM      Data.Foldable.for_        Data.Foldable.msum        Data.Foldable.sum<br>Data.Foldable.any         Data.Foldable.fold        Data.Foldable.foldr       Data.Foldable.mapM_       Data.Foldable.notElem     Data.Foldable.toList<br>



Data.Foldable.asum        Data.Foldable.foldMap     Data.Foldable.foldr&#39;      Data.Foldable.maximum     Data.Foldable.or          Data.Foldable.traverse_<br>Data.Foldable.concat      Data.Foldable.foldl       Data.Foldable.foldr1      Data.Foldable.maximumBy   Data.Foldable.product<br>



Prelude Data.Traversable Data.Foldable&gt; :t Data.Traversable.<br>Data.Traversable.Traversable     Data.Traversable.for             Data.Traversable.mapAccumR       Data.Traversable.sequenceA<br>Data.Traversable.fmapDefault     Data.Traversable.forM            Data.Traversable.mapM            Data.Traversable.traverse<br>



Data.Traversable.foldMapDefault  Data.Traversable.mapAccumL       Data.Traversable.sequence<br>Prelude Data.Traversable Data.Foldable&gt; :i Foldable <br>class Foldable t where<br>  fold :: Data.Monoid.Monoid m =&gt; t m -&gt; m<br>



  foldMap :: Data.Monoid.Monoid m =&gt; (a -&gt; m) -&gt; t a -&gt; m<br>  Data.Foldable.foldr :: (a -&gt; b -&gt; b) -&gt; b -&gt; t a -&gt; b<br>  foldr&#39; :: (a -&gt; b -&gt; b) -&gt; b -&gt; t a -&gt; b<br>  Data.Foldable.foldl :: (a -&gt; b -&gt; a) -&gt; a -&gt; t b -&gt; a<br>



  foldl&#39; :: (a -&gt; b -&gt; a) -&gt; a -&gt; t b -&gt; a<br>  Data.Foldable.foldr1 :: (a -&gt; a -&gt; a) -&gt; t a -&gt; a<br>  Data.Foldable.foldl1 :: (a -&gt; a -&gt; a) -&gt; t a -&gt; a<br>      -- Defined in `Data.Foldable&#39;<br>



instance Foldable [] -- Defined in `Data.Foldable&#39;<br>instance Foldable Maybe -- Defined in `Data.Foldable&#39;<br>Prelude Data.Traversable Data.Foldable&gt; :i Tr<br>Traversable  True<br>Prelude Data.Traversable Data.Foldable&gt; :i Traversable <br>



class (Functor t, Foldable t) =&gt; Traversable t where<br>  traverse ::<br>    Control.Applicative.Applicative f =&gt; (a -&gt; f b) -&gt; t a -&gt; f (t b)<br>  sequenceA ::<br>    Control.Applicative.Applicative f =&gt; t (f a) -&gt; f (t a)<br>



  Data.Traversable.mapM :: Monad m =&gt; (a -&gt; m b) -&gt; t a -&gt; m (t b)<br>  Data.Traversable.sequence :: Monad m =&gt; t (m a) -&gt; m (t a)<br>      -- Defined in `Data.Traversable&#39;<br>instance Traversable [] -- Defined in `Data.Traversable&#39;<br>



instance Traversable Maybe -- Defined in `Data.Traversable&#39;<br>Prelude Data.Traversable Data.Foldable&gt; :t foldMap<br>foldMap<br>  :: (Foldable t, Data.Monoid.Monoid m) =&gt; (a -&gt; m) -&gt; t a -&gt; m<span><font color="#888888"><br>


<br></font></span></div><span><font color="#888888">
-Mukesh<br></font></span></div><div class="gmail_extra"><br><br><div class="gmail_quote"><div><div>On Fri, May 31, 2013 at 2:26 PM, Giacomo Tesio <span dir="ltr">&lt;<a href="mailto:giacomo@tesio.it" target="_blank">giacomo@tesio.it</a>&gt;</span> wrote:<br>



</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr">I&#39;m looking for a class abstracting Data.List. I mean something that enable the use of say head, map, take and so on into different kind of types.<div>



<br></div><div>Is there already something like that?</div><span><font color="#888888">
<div><br></div><div><br></div><div>Giacomo</div></font></span></div>
<br></div></div><div>_______________________________________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@haskell.org" target="_blank">Beginners@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/beginners" target="_blank">http://www.haskell.org/mailman/listinfo/beginners</a><br>
<br></div></blockquote></div><br></div>
<br>_______________________________________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@haskell.org" target="_blank">Beginners@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/beginners" target="_blank">http://www.haskell.org/mailman/listinfo/beginners</a><br>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@haskell.org">Beginners@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/beginners" target="_blank">http://www.haskell.org/mailman/listinfo/beginners</a><br>
<br></blockquote></div><br></div>