S.encase should be variadic
The primary usage of encase is to make unsafe functions safe, and those functions probably except n args.
E.g. S.encase(fs.writeFileSync)
won't let you specify the encoding or any write options.
You need to instead do...
(...args) => S.encase( () => fs.writeFileSync(...args))()
Which is pretty obnoxious. So that should be fixed.