Function types draft.