Mitigating risks when developing with non-mainstream programming languages
(This is specific to Haskell, but can be applied in other settings)
Here are some problems I could imagine encountering:
- not having a supported, stable library that interfaces with a specific system that become important to connect with (e.g. new database systems, important new web services, ...).
 - complex performance problems within a given library used at scale, and a slow or reluctant maintainer
 - training time for new developers, recruiting experienced developers fast/easy
 - lack of platforms/PAAS that automate various building/testing/devops necessities specific to Haskell like Heroku
 - Cabal hell or reacting to conflicts in dependencies over time
 - extra time needed to understand complex, albeit useful libraries and abstractions
 - missing platform features or libraries to support emerging concurrent or distributed programming needs
 
Some ways I have imagined addressing them:
1.
- Having either staff developer or consultant who becomes well-versed in the C FFI and throwing together quick wrappers around C libraries when crucial. Later revisit and fund development of pure Haskell implementations.
 - Having staff developers be very sharp in major web service API standards
 - Be in contact with important and emerging vendors and put in early requests for a maintained Haskell client library
 
2
- Do very simple tests for scale early, report concerns to library maintainers
 - Be familiar with and in communication with support forums for key libraries used
 - Develop strong abilities to profile and isolate performance problems in sequential, concurrent, and distributed settings
 
3
- Attend FP meetups and conferences
 - Give talks about anything on occasion to attract ongoing stream of interested candidates in being at your company
 - Stay on lookout for curious, sharp developers
 - Be in contact with Haskell consultants and trainers
 - use FunctionalJobs website
 
4
- Ask major PAAS vendors for Haskell support, offer to pay to help get some of it initiated
 - Actively know APIs and build tools for Haskell on major platforms
 
5
- Continually practice cloning and locally building any library you depend on
 - Be well-versed in Github pull requests for submitting patches you develop
 - Be familiar with and in communication with support forums for key libraries used (repeated)
 - Having a build server continually running builds with a set of current and emerging version constraints. Report failures to maintainers quickly.
 - Study internals of libraries you use
 
6
- continue to master Haskell, attend meetups and conferences
 - have expert consultants available to train when need to learn fast
 - learn libraries and abstractions you may not use currently preemptively. write small practice programs with them
 - request (and write) more documentation and tutorials for libraries that need them
 
7
- request these early and often
 - commission them from experts
 
Jane Street might be good people to talk as well, for anticipating problems that one might encounter when outside of the mainstream.