( a : * ! ! ! ! x : a ! ! ! ! b : a -> * ! ! ! ! f : all y : a => b y ; c : b x -> * ; g : all y : b x => c y ! let !----------------------------------------------------------------! ; ! compose a b c x f g : c (f x) )