I&#39;ve often seen it referred to as the base functor for a recursive data type. You can then fix that functor in interesting ways i.e. with (Fix, Free, Cofree) and having the explicit base functor allows you to define general purpose recursion schemes over the data type. All of that extra machinery relies on your recursive data type being implemented as a functor with an explicit fixpoint, so base &#39;functor&#39; seems quite appropriate.<div>

<div><br></div><div>-Edward Kmett<br><br><div class="gmail_quote">On Thu, Oct 22, 2009 at 3:47 AM, Martijn van Steenbergen <span dir="ltr">&lt;<a href="mailto:martijn@van.steenbergen.nl" target="_blank">martijn@van.steenbergen.nl</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Bonjour café,<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
data ExprF r<br>
  =  Add  r  r<br>
  |  Sub  r  r<br>
  |  Mul  r  r<br>
  |  Div  r  r<br>
  |  Num  Int<br>
</blockquote>
<br>
This is a well-known pattern that for example allows nice notation of morphisms. But what is it called? I&#39;ve heard fixed-point view, open datatypes and some others, but I&#39;m curious where this pattern comes up in literature and what it is called there.<br>


<br>
Thanks,<br>
<br>
Martijn.<br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</blockquote></div><br></div></div>