module Fixme where data World = W Int {-@ data FIO a
 Prop, post :: World -> a -> World -> Prop>
  = FIO (rs :: (x:World
 -> (a, World)<\y -> {v:World | true}>))  @-}
data FIO a  = FIO {runState :: World -> (a, World)}

{-@ createFile :: forall 

World -> Prop, q :: Int -> World -> Int -> World -> Prop>. {f::Int |- World

<: World} {f::Int, w::World

, x::Int |- World <: World} a:Int -> FIO

{v:World | true}> Int @-} createFile :: Int -> FIO Int createFile = undefined