code: def input(self, _in, out, **kw):
          
          # create a temp file
          tmp = NamedTemporaryFile(suffix='.js', delete=False)
          tmp.close()  # close it so windows can read it
  
          # write to a temp file
          elm_make = self.binary or 'elm-make'
          change_directory = bool(self.change_directory or False)
          source = kw['source_path']
          source_dir = os.path.dirname(source)
          exec_dir = source_dir if change_directory else os.getcwd()
          write_args = [elm_make, source, '--output', tmp.name, '--yes']
          with excursion(exec_dir), TemporaryFile(mode='w') as fake_write_obj:
              self.subprocess(write_args, fake_write_obj)
  
          # read the temp file
          cat_or_type = 'type' if platform == 'win32' else 'cat'
          read_args = [cat_or_type, tmp.name]
          self.subprocess(read_args, out)
          os.remove(tmp.name)
docs: Currently Elm does not write to stdout
          (https://github.com/elm-lang/elm-make/issues/39), so we need to write
          the compiled contents to a temporary file and then read it in order to
          output to stdout.