Currently there is no great way to model functional programs using UML. Every attempt to use the class diagram feels really "iffy". I think a great first step is to make functions a first class citizen of the plantuml class diagram space.
Syntax could be something FP-ish like (just an example):
function Foo :: Id -> (name: string) -> string;
This would create a component with the circled icon F, layout would be the same as a class but with the return value in the method block and the parameters in the properties block.
I think this feature would open up a great number of new use-cases for plantuml and would be a good start of implementing full FP style documentation.