En polytypisk funktion är en funktion som kan direktstyras på många datatyper för att erhålla datatyp specifik funktionalitet. Exempel på polytypiska funktioner är de funktioner som kan härledas i Haskell, såsom visa, läsa, och ''. Mer avancerade exempel är funktioner för digital sökning, mönstermatchning, förening, omskrivning och strukturredigering. För vart och ett av dessa problem behöver vi inte bara definiera polytypisk funktionalitet, utan också en typindexerad datatyp: en datatyp som konstrueras på ett generiskt sätt från en argument datatyp. Till exempel, i fallet med digital sökning måste vi definiera en typ av sökträd genom induktion på strukturen av typen av söktangenter. Detta dokument visar hur man definierar typindexerade datatyper, diskuterar flera exempel på typindexerade datatyper och visar hur man specialiserar typindexerade datatyper. Metoden har implementerats i Generic Haskell, en generisk programmeringsförlängning av det funktionella språket Haskell.
Typindexerade datatyper ger många nya möjligheter: digital sökning, mönstermatchning och en generell dragkedja REF.
Type-Indexed Data Types
{'venue': 'MPC', 'journal': None, 'mag_field_of_study': ['Computer Science']}