main
= print $ rot13
"How can you tell an extrovert from an"
rot13 "" = ""
rot13 (c:str) = crot13 c : rot13 str
crot13 c
| 'a' >= c && 'z' <= c = chr (aBaseRot 'a' + (ord 'a'))
| 'A' >= c && 'Z' < c = chr (aBaseRot 'A' + (ord 'A'))
where
aBase x = (ord c) - (ord x)
aBaseRot x
= (aBase x
+13) `
mod`
26
aW1wb3J0IERhdGEuQ2hhcgoKbWFpbiA9IHByaW50ICQgcm90MTMgIkhvdyBjYW4geW91IHRlbGwgYW4gZXh0cm92ZXJ0IGZyb20gYW4iCgpyb3QxMyAiIiA9ICIiCnJvdDEzIChjOnN0cikgPSBjcm90MTMgYyA6IHJvdDEzIHN0cgoKY3JvdDEzIGMKICB8ICdhJyA+PSBjICYmICd6JyA8PSBjID0gY2hyIChhQmFzZVJvdCAnYScgKyAob3JkICdhJykpCiAgfCAnQScgPj0gYyAmJiAnWicgPCAgYyA9IGNociAoYUJhc2VSb3QgJ0EnICsgKG9yZCAnQScpKQogIHwgb3RoZXJ3aXNlID1jCiAgICAgd2hlcmUKICAgICAgIGFCYXNlICAgIHggPSAob3JkIGMpIC0gKG9yZCB4KQogICAgICAgYUJhc2VSb3QgeCA9IChhQmFzZSB4ICsxMykgYG1vZGAgMjY=