packages feed

variadic-0.0.0.0: test/Test/Infra/Handle.hs

{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE KindSignatures #-}
module Test.Infra.Handle where

import GHC.Generics (Generic)

-- | An example handle for interacting with a database.
-- We'll be using it as a test case for @ghoist@.
data Handle (f :: * -> *) = Handle
  { insert :: String -> String -> f Int
  , get :: Int -> f (Maybe (String, String))
  , delete :: Int -> f Bool
  , close :: IO ()
  } deriving stock (Generic)