Making smlnj optional