# Suspend variables (suspend val, suspend var)

**URL:** <https://discuss.kotlinlang.org/t/suspend-variables-suspend-val-suspend-var/13142>\
**Category:** Language Design\
**Created:** [June 19, 2019, 11:32am UTC](https://discuss.kotlinlang.org/t/suspend-variables-suspend-val-suspend-var/13142 "2019-06-19T11:32:53Z")\
**Posts on this page:** 1\
**Showing post:** 6

<div class="post-metadata">

**Author:** ![fvasco](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/fvasco/32/1961_2.png) [@fvasco](https://discuss.kotlinlang.org/u/fvasco)\
**Post date:** [June 19, 2019, 8:29pm UTC](https://discuss.kotlinlang.org/t/suspend-variables-suspend-val-suspend-var/13142/6 "2019-06-19T20:29:14Z")

</div>

I consider interesting the asynchronous delegates, something like: `val result by deferred`, this is really similar to the blocking version `val result by future`, so this considerations are debatable.

Synchronous and asynchronous worlds do not fit well together, [blue and red functions](http://journal.stuffwithstuff.com/2015/02/01/what-color-is-your-function/) are -after all- incompatible, you already mentioned `data class`.

Finally Kotlin’s coroutine library enriches suspending functions with coroutine scopes, this makes harder to implement a `suspend lazy{ ... }`, I already exposed some concerns in [issue #1065](https://github.com/Kotlin/kotlinx.coroutines/issues/1065).

---

_[View the full topic](https://discuss.kotlinlang.org/t/suspend-variables-suspend-val-suspend-var/13142)._
