(bind-func fmap:[ADList{!b}*,[!b,!a]*,ADList{!a}*]* (lambda (f F) (ADCons$ F (x xs) (ADCons (f x) (fmap f xs)) (ADNil))))