Quais são as opções ALGUNS e NENHUMS no SML?

Eu sou novo em SML (e programação, na verdade).

fun readlist (infile : string) =  

  let
  val 
      ins = TextIO.openIn infile 

      fun loop ins = 

      case TextIO.inputLine ins of 

      SOME line => line :: loop ins 

    | NONE      => [] 

  in 

     loop ins before TextIO.closeIn ins 

  end ;

Este é um programa que encontrei aqui. Como uso ALGUNS e NENHUM, e como usar 'antes'?

questionAnswers(2)

yourAnswerToTheQuestion