fib(0,0).
fib(1,1).
fib(M,N) :- M > 1, M1 is M-1, M2 is M-2,(fib(M1,N1) //  fib(M2,N2)),
	     							 N is N1+N2.

funnyfib(A,B,C,D,E,F,G,H) :- fib(A,A1), 
		       ((B is A-1, functor(F,f,6), C is A-2,  (fib(B,B1) // fib(C,C1)), T1 is B1+C1, functor(G,g,4), functor(H,h,3), T is T1)   //
			(D is A-3, fib(D,D1))), 
		       E is A1+T+D1.
?- funnyfib(6,B,C,D,E,F,G,H).

