Exploring parafunctional programming: separating the what from the how | IEEE Journals & Magazine | IEEE Xplore