--- /dev/null
+===============================================================================
+ALE SML Integration *ale-sml-options*
+
+===============================================================================
+smlnj *ale-sml-smlnj*
+ *ale-sml-smlnj-cm*
+
+There are two SML/NJ powered checkers:
+
+- one using Compilation Manager that works on whole projects, but requires you
+ to save before errors show up
+- one using the SML/NJ REPL that works as you change the text, but might fail
+ if your project can only be built with CM.
+
+We dynamically select which one to use based whether we find a `*.cm` file at
+or above the directory of the file being checked. Only one checker (`smlnj`,
+`smlnj-cm`) will be enabled at a time.
+
+-------------------------------------------------------------------------------
+Options
+ *ale-options.sml_smlnj_cm_file*
+ *g:ale_sml_smlnj_cm_file*
+ *b:ale_sml_smlnj_cm_file*
+sml_smlnj_cm_file
+g:ale_sml_smlnj_cm_file
+ Type: |String|
+ Default: `'*.cm'`
+
+ By default, ALE will look for a `*.cm` file in your current directory,
+ searching upwards. It stops when it finds at least one `*.cm` file (taking
+ the first file if there are more than one).
+
+ Change this option (in the buffer or global scope) to control how ALE finds
+ CM files. For example, to always search for a CM file named `sandbox.cm`: >
+
+ let g:ale_sml_smlnj_cm_file = 'sandbox.cm'
+<
+===============================================================================
+ vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: