data V = Fun (V -> V)
       | Str String

app :: V -> V -> V
app (Fun f) v = f v

unlist :: V -> String
unlist l = s where Str s = l

m=Fun (\a -> a `app` a)

main = interact (\input->unlist (m `app` m))
