work on splitting HaskFunction into LibFunction and UserFunction