//WARNING: MUST use brackets with all infix operators, and space between operator and arguments compulsory 
// e.g. (x & y)  (x overlap y) (z < x) etc...

	
event_restrictor(past)
	ttrput([head:es|p1==past(head):t])

event_restrictor(pres)
	ttrput([head:es|p1==pres(head):t])

event_restrictor(future)
	ttrput([head:es|p1==future(head):t])

v_intran_content(PRED,TENSE)
    put(ty(e>t))
	ttrput(R1^(R1 ++ [e1==PRED:es|head==e1:es|p1==TENSE(head):t|p2==subj(e1, R1.head):t]))
	put(!)

v_tran_content(PRED,TENSE)
	make(\/1)
	go(\/1)
	ttrput(R1^R2^(R1 ++ (R2 ++ [e1==PRED:es|head==e1:es|p1==TENSE(head):t|p2==subj(e1, R2.head):t|p3==obj(e1, R1.head):t])))
	put(ty(e>(e>t)))
	put(!)
	go(/\1)
	make(\/0)
	go(\/0)
	put(?ty(e))
	
v_ditran_goal_content(PRED)
	make(\/1)
	go(\/1)
	put(?ty(es>(e>t)))
	make(\/1)
	go(\/1)
	put(ty(e>(es>(e>t))))
	ttrput(R1^R2^R3^(R1 ++ (R2 ++ (R3 ++ [e1==PRED:es|head==e1:es|p1==subj(e1, R3.head):t|p2==indobj(e1, R2.head):t|p3==obj(e1, R1.head):t]))))
	put(!)
	go(/\1)	
	make(\/0)
	go(\/0)
	put(?ty(e))
	go(/\0)
	go(/\1)	
	make(\/0)
	go(\/0)
	put(+goal)
	put(?ty(es))
	go(/\0)
	go(\/1)
	go(\/0)

v_ditran_content(PRED)
	make(\/1)
	go(\/1)
	put(?ty(e>(e>t)))
	make(\/1)
	go(\/1)
	put(ty(e>(e>(e>t))))
	ttrput(R1^R2^R3^(R1 ++ (R2 ++ (R3 ++ [e1==PRED:es|head==e1:es|p1==subj(e1, R3.head):t|p2==indobj(e1, R2.head):t|p3==obj(e1, R1.head):t]))))
	put(!)
	go(/\1)	
	make(\/0)
	go(\/0)
	put(?ty(e))
	go(/\0)
	go(/\1)	
	make(\/0)
	go(\/0)
	put(+goal)
	put(?ty(e))
	go(/\0)
	go(\/1)
	go(\/0)
	
//*
	go(/\0)
	go(\/1)
	go(\/0)
ttrput(R1^R2^R3^(R1 ++ (R2 ++ (R3 ++ [e1==PRED:es|head==e1:es|p3==subj(e1, R3.head):t|p2==indobj(e1, R2.head):t|p3==obj(e1, R1.head):t]))))
*//

aux_content(will)
		put(?+eval)
		make(\/L)
		go(\/L)
		put(ty(t))
		event_restrictor(future)
		go(/\L)
		put(ty(e>t))
		delete(?ty(e>t))	
		put(?Ex.fo(x))

aux_content(would)
		put(?+eval)
		make(\/L)
		go(\/L)
		put(ty(t))
		event_restrictor(pres)
		go(/\L)
		put(ty(e>t))
		delete(?ty(e>t))	
		put(?Ex.fo(x))

aux_content(did)
		make(\/L)
		go(\/L)
		put(ty(t))
		event_restrictor(past)
		go(/\L)
		put(ty(e>t))
		delete(?ty(e>t))		
		put(?Ex.fo(x))
	
aux_content(do)
		make(\/L)
		go(\/L)
		put(ty(t))
		event_restrictor(pres)
		go(/\L)
		put(ty(e>t))
		delete(?ty(e>t))		
		put(?Ex.fo(x))
