27 lines
371 B
Go
27 lines
371 B
Go
package main
|
|
|
|
type Void = [0]byte
|
|
type Future[T any] func() T
|
|
|
|
type IO[T any] func() Future[T]
|
|
|
|
func WriteFile(fileName string) IO[error] {
|
|
return func() Future[error] {
|
|
return func() error {
|
|
return nil
|
|
}
|
|
}
|
|
}
|
|
|
|
func RunIO[T any](call IO[T]) T {
|
|
return call()()
|
|
}
|
|
|
|
func main() {
|
|
RunIO[Void](func() Future[Void] {
|
|
return func() (ret Void) {
|
|
return
|
|
}
|
|
})
|
|
}
|