{Record append concat join equal length fetch clip compare} Where Let (join glue strings) Match strings | `nil "" | `cons.{s strings} Let strings (LIST.fold strings [] Func s strings. (glue :: (s :: strings))) In (concat (s :: strings)) ; Where Let (concat strings) (LIST.reduce strings "" append) Where Let (compare a b) Switch (Prim string_compare a b) | 1 `greater | 0 `equal | _ `less ; Let (append s1 s2) (Prim string_append s1 s2) Let (equal s1 s2) (Prim string_equal s1 s2) Let (length s) (Prim string_length s) Let (fetch s i) (Prim string_fetch s i) Let (clip s begin end) (Prim string_clip s begin end) Where Let LIST Package "list"