I tested the waters on this sort of question with python, but now I get to the real question I want to ask.
restricted-source challenges are uniquely rewarding in Haskell because of Haskell's strict rule set. Type coercion which is the bread and butter for other languages in these sort of challenges is arguably non-existent but when pushed to the limits Haskell provides some weird and interesting solutions.
What are some tips for solving restricted-source challenges in Haskell?
Please only include 1 tip per answer. If your tip only works for a specific compiler, or version of Haskell please note that.
What makes a good tip here?
There are a couple of criteria I think a good tip should have:
It should be (somewhat) non obvious.
Similar to the code-golf tips it should be something that someone who has golfed in python a bit and read the tips page would not immediately think of. For example "Replace
a + b
witha+b
to avoid using spaces", is obvious to any golfer since it is already a way to make your code shorter and thus not a good tip for this question.It should not be too specific.
Since there are many different types of source restrictions, answers here should be at least somewhat applicable to multiple source restrictions, or one common source restriction. For example tips of the form How to X without using character(s) Y are generally useful since banned characters is a common source restriction, or the byproduct of more unique restrictions. The thing your tip helps to do should also be somewhat general. For example tips of the form How to create numbers with X restriction are useful since many programs utilize numbers regardless of the challenge. Tips of the form How to implement Shor's algorithm with X restriction are basically just answers to a challenge you just invented and not very helpful to people solving other challenges.