M self application Bird: Mockingbird BQN: ? Haskell: (cannot define)
This is not representable in Fuzion, we would need arguments with generic arguments here. Using pseudo-syntax ((T,U type) <type using T,U>) to denote a type that is itself type parameteric...:
public M(f ((T,U type) T -> U)) ((V,W type) V->W) => f f
we can emulate this if we require the argument to be given twice:
self application
Bird: Mockingbird
BQN: ?
Haskell: (cannot define)
This is not representable in Fuzion, we would need arguments with generic arguments
here. Using pseudo-syntax ((T,U type) <type using T,U>) to denote a type that is
itself type parameteric...:
public M(f ((T,U type) T -> U)) ((V,W type) V->W) => f f
we can emulate this if we require the argument to be given twice: