data StateC1 : Type -> Type -> TypeFunctor (StateC1 s)StateC : Type -> (Type -> Type) -> Type -> TyperunStateC : Syntax sig => s -> Free (StateC s :+: sig) a -> Free sig (s, a)get : Inj (StateC s) sig => Free sig sput : Inj (StateC s) sig => s -> Free sig ()modify : Syntax sig => Inj (StateC s) sig => (s -> s) -> Free sig ()withSt : Syntax sig => Inj (StateC st) sig => a -> Free sig (st, a)