mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 09:40:21 +00:00
28 lines
773 B
Standard ML
28 lines
773 B
Standard ML
|
|
signature LAZY_BASE =
|
|
sig
|
|
type 'a lazy
|
|
exception Undefined
|
|
val force: 'a lazy -> 'a
|
|
val delay: (unit -> 'a) -> 'a lazy
|
|
val undefined: 'a lazy
|
|
end
|
|
|
|
signature LAZY' =
|
|
sig
|
|
include LAZY_BASE
|
|
val isUndefined: 'a lazy -> bool
|
|
val inject : 'a -> 'a lazy
|
|
val toString: ('a -> string) -> 'a lazy -> string
|
|
val eq: ''a lazy * ''a lazy -> bool
|
|
val eqBy: ('a * 'a -> bool) -> 'a lazy * 'a lazy -> bool
|
|
val compare: ('a * 'a -> order) -> 'a lazy * 'a lazy -> order
|
|
val map: ('a -> 'b) -> 'a lazy -> 'b lazy
|
|
|
|
structure Ops:
|
|
sig
|
|
val ! : 'a lazy -> 'a (* force *)
|
|
val ? : 'a -> 'a lazy (* inject *)
|
|
end
|
|
end
|