morse lib functional