Significant Whitespace: Cops
Haskell, 100 bytes, cracked by nimi

main=interact$iddoidlinesidwordsdoidoidoid=doiddoid&lt;-dooiidoid&lt;-dooiddoiddodoid

This is a full program and a dadaistic poem.

Code with withspace (Try it online!)
main=interact$id doid lines id words
doid oi d o id=do
 iddoid&lt;-do oi id
 oid&lt;-do o iddoid
 do d oid

Still looking quite poetic, if you ask me.
De-obfuscated
main = interact f
f s = do
 l &lt;- lines s
 w &lt;- words l
 id w

Explanation
The do-notation is only syntactic sugar, so f can equivalently be written as
f s = lines s &gt;&gt;= words &gt;&gt;= id

For lists the &gt;&gt;=-operator is defined as concatMap, so f becomes
f = concat . map id . concat . map words . lines

So given an input &quot;a b\nc&quot;, lines splits the input at newlines [&quot;a b&quot;,&quot;c&quot;], words splits each line at white space yielding [[&quot;a&quot;,&quot;b&quot;],[&quot;c&quot;]] (as I realised only now this includes newlines, so lines actually isn't needed). Concatenating once gives [&quot;a&quot;,&quot;b&quot;,&quot;c&quot;], id is the identity function and as such has no effect and the final concatenation yields the string &quot;abc&quot;.