let rec fold f a e = 
  match a with
    | App(Coproduct(_), [x]) -> fold f x e
    | _ -> f a e