# Terms

### From HaskellWiki

Revision as of 23:16, 21 March 2011 by Henk-Jan van Tuyl (Talk | contribs)

*This article is a stub. You can help by expanding it.*

See also Category:Glossary and Abbreviations

Adjoint functors | See the Wikipedia article |

Anamorphism | An unfold |

Bottom | Undefined value |

Catamorphism | Fold; any for-each loop can be represented as a catamorphism |

Finally tagless | ??? |

Forgetful functor | Given some object with structure as input, some or all of the object's structure or properties is 'forgotten' in the output |

Hylomorphism | Combination of fold and unfold; every for-loop (without early exits) can be represented as a hylomorphism |

Left adjoint | See the Wikipedia article on adjoint functors |

Oleg rating | A measure of ability to do type system trickery, named after Oleg Kiselyov :) |

Right adjoint | See the Wikipedia article on adjoint functors |

Tail recursion | A recursive function is tail recursive if the final result of the recursive call is the final result of the function itself. |

Tying the knot | Building a cyclic data structure |

Unlifted types | Types that do not have bottom as an inhabitant |

Unpointed types | Types that do not have bottom as an inhabitant |