typeToString :: JSType -> String
typeToString tipe =
  case tipe of
    JSNumber -> "a number"
    JSInt -> "an integer"
    JSBoolean -> "a boolean (true or false)"
    JSString -> "a string"
    JSArray -> "an array"
    JSObject fields ->
      "an object with fields `" ++ List.intercalate "`, `" fields ++ "`"
typeToString :: JSType -> String
typeToString tipe =
  case tipe of
    JSNumber -> "a number"
    JSInt -> "an integer"
    JSBoolean -> "a boolean (true or false)"
    JSString -> "a string"
    JSArray -> "an array"
    JSObject fields ->
      "an object with fields `" ++ List.intercalate "`, `" fields ++ "`"
typeToString tipe =
  case tipe of
    JSNumber -> "a number"
    JSInt -> "an integer"
    JSBoolean -> "a boolean (true or false)"
    JSString -> "a string"
    JSArray -> "an array"
    JSObject fields ->
      "an object with fields `" ++ List.intercalate "`, `" fields ++ "`"