1 (* Copyright (C) 2003-2006 Henry Cejtin, Matthew Fluet, Suresh
2 * Jagannathan, and Stephen Weeks.
4 * MLton is released under a BSD-style license.
5 * See the file MLton-LICENSE for details.
8 functor AdmitsEquality (S: ADMITS_EQUALITY_STRUCTS): ADMITS_EQUALITY =
13 datatype t = Always | Never | Sometimes
18 | Sometimes => "Sometimes"
20 val layout = Layout.str o toString
24 | (Sometimes, Never) => false
25 | (Sometimes, _) => true
26 | (Always, Always) => true
27 | (Always, _) => false
30 Trace.trace2 ("AdmitsEquality.<=", layout, layout, Bool.layout) (op <=)
33 fn (Always, _) => Always
34 | (_, Always) => Always
35 | (Sometimes, _) => Sometimes
36 | (_, Sometimes) => Sometimes