implementation module UtilDiagnostics import StdFile, StdString // Unexpected :: .a {#Char} -> .a Unexpected message defaultValue :== UnexpectedEvalBefore defaultValue (UnexpectedReport message) UnexpectedEvalBefore :: .a !.b -> .a UnexpectedEvalBefore defaultValue _ = defaultValue Don`tCareValue :== 0 UnexpectedReport :: {#Char} -> Int UnexpectedReport message = UnexpectedEvalBefore Don`tCareValue (fwrites message stderr) UnexpectedConstructor :: {#Char} {#Char} .a -> .a UnexpectedConstructor typeName string defaultValue = Unexpected ( "fromString (" +++ typeName +++ "): unknown value (" +++ string +++ ")\n") defaultValue