{-# LANGUAGE GADTs #-}

data X f = Monad f => X

fun1 :: X f -> a -> f a
fun1 X = _