A functional language in K using 3 evaluation styles: Call by Value, Call by Name and Call by Need