private TCExplicitFunctionDefinition getPostDefinition() {
    TCPatternList last = new TCPatternList();
    int psize = paramPatternList.size();

    for (TCPattern p : paramPatternList.get(psize - 1)) {
      last.add(p);
    }

    last.add(new TCIdentifierPattern(name.getResultName(location)));

    TCPatternListList parameters = new TCPatternListList();

    if (psize > 1) {
      parameters.addAll(paramPatternList.subList(0, psize - 1));
    }

    parameters.add(last);

    TCExplicitFunctionDefinition def =
        new TCExplicitFunctionDefinition(
            accessSpecifier,
            name.getPostName(postcondition.location),
            typeParams,
            type.getCurriedPostType(isCurried),
            parameters,
            postcondition,
            null,
            null,
            false,
            null);

    def.classDefinition = classDefinition;
    return def;
  }