build t = case t of
    S.S {} -> s
    S.J {} -> j
    S.App {S.fun = f, S.arg = a} -> app (build f) (build a)
build t = case t of
    S.S {} -> s
    S.J {} -> j
    S.App {S.fun = f, S.arg = a} -> app (build f) (build a)
build t = case t of
    S.S {} -> s
    S.J {} -> j
    S.App {S.fun = f, S.arg = a} -> app (build f) (build a)