view tests/newMessage.ur @ 2195:18e6fb487880

Reduce: add reduction in some spots previously missed, associated with 'case' return types
author Adam Chlipala <adam@chlipala.net>
date Wed, 25 Nov 2015 18:48:17 -0500
parents 7ec8dab190a7
children
line wrap: on
line source
datatype message =  NewQuestion of { Id : string}
                  | Something of {Blah : int}

fun showMessage (message : message) =
    case message of
        NewQuestion {Id = a} => a
      | Something {Blah = x} => "blah"

val show_mes = mkShow showMessage

fun showTwoTuple [a] [b] (_ : show a) (_: show b) = mkShow (fn (two_tuple : {1:a, 2:b}) =>
                              "(" ^ show two_tuple.1 ^ ", " ^ show two_tuple.2 ^ ")"

                          )
val om = show  (Something {Blah = 1}, Something {Blah = 2})