Increasing type-safety for heuristic impls
Cleaner representation of functions
Minor code cleanup
Merge pull request #4 from ocymum/HeuristicResultTypeSafety

Heuristic result type safety