packages feed

ribosome-test-0.3.0.0: lib/Ribosome/Test/Orphans.hs

{-# OPTIONS_GHC -fno-warn-orphans #-}

module Ribosome.Test.Orphans where

import Control.Monad.IO.Class (liftIO)
import Control.Monad.IO.Unlift (withRunInIO)
import Neovim (Neovim)
import Test.Framework.AssertM (AssertM(..))

import Ribosome.Control.Monad.Ribo (Ribo(Ribo, unRibo))

instance AssertM (Neovim e) where
  genericAssertFailure__ l =
    liftIO . genericAssertFailure__ l

  genericSubAssert l msg ma =
    withRunInIO (\f -> genericSubAssert l msg (f ma))

instance AssertM (ExceptT e (Neovim s)) where
  genericAssertFailure__ l = liftIO . genericAssertFailure__ l

  genericSubAssert l msg =
    ExceptT . genericSubAssert l msg . runExceptT

instance AssertM (Ribo s e) where
  genericAssertFailure__ l = liftIO . genericAssertFailure__ l

  genericSubAssert l msg =
    Ribo . ExceptT . genericSubAssert l msg . runExceptT . unRibo