This challenge is about reversing the following (obfuscated) program written in Haskell:
```haskell#!/usr/bin/env runhaskell{-# LANGUAGE OverloadedStrings #-}import Prelude hiding (replicate, putStrLn)import Data.List hiding (replicate)import Data.Tupleimport Data.Ordimport Data.Functionimport Data.ByteString (replicate)import Data.ByteString.Char8 (putStrLn, pack)import Control.Monadimport Control.Arrowimport Control.Applicativeimport Crypto.Cipher.AESimport Crypto.Hash.SHA256import Unsafe.Coerce
c = "\xd7\xc8\x35\x14\xc4\x27\xcd\x6f\x78\x3a\x80\x57\x76\xb0\xfd\x42\x25\xe4\x87\x5f\x99\x28\x87\x0a\x06\xef\x63\x81\x44"
main  = (>>=) getContents $ read >>> putStrLn <<< ( <<< unsafeCoerce . and <<< flip    `liftM` flip liftM2 `uncurry` (fmap unsafeCoerce $ swap <**> (<>) $ (&) <$>    [0..39] & pure) <<< ((.) or <<<) . (<$>) (flip (<$>) >>> (.) $ (>>> \[x] ->    x) . flip elemIndices & \(??) -> (.) . (>>>) . (. flip (??)) . ((.) (>=) .)    . (>>>) <*> (.) (<**>) . (<*>) . (.) (??) & \t -> [(&) $ id $ fst <$> (flip    sortBy [0..39] . comparing . (!!) *** drop 40 <<< return . snd ^>> (<>) <*>    swap) `iterate` pure (tail $ flip iterate 44 $ flip mod 400013 <$> (+) 42 .    (*) 1337) & tail & (!!)] <*> [(<<^) flip <<< t >>> ((!!) >>>), (.) (==) <$>    (!!) & return, (>>>) (??) . t <<< (. (+) 40)]) . (>>>) (.) . (.) <<< ( >>>)    . (&)) . maybe "wrong" <$> (>>>) pure (>>> initAES . hash . pack . show >>>    decryptCTR `flip` replicate 16 0 `flip` c) <*> id```
For more details, please take a look [here](https://www.tasteless.eu/post/2020/12/hxp-ctf-2020-re-haskell-writeup/).