datafix-0.0.0.2: src/Datafix/Entailments.hs
{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE TypeOperators #-}
-- |
-- Module : Datafix.Entailments
-- Copyright : (c) Sebastian Graf 2018
-- License : ISC
-- Maintainer : sgraf1337@gmail.com
-- Portability : portable
--
-- A bunch of helpful auxiliary entailments for 'Currying' that are recurring
-- throughout the code base.
module Datafix.Entailments
( cdInst
, lfInst
, afInst
, idInst
) where
import Datafix.Utils.Constraints
import Datafix.Utils.TypeLevel
-- | 'Currying' entailment for 'ChangeDetector's.
cdInst
:: Forall (Currying (ParamTypes domain))
:- Currying (ParamTypes domain) (ReturnType domain -> ReturnType domain -> Bool)
cdInst = inst
-- | 'Currying' entailment for 'LiftedFunc's.
lfInst
:: Forall (Currying (ParamTypes domain))
:- Currying (ParamTypes domain) (m (ReturnType domain))
lfInst = inst
-- | 'Currying' entailment for abortion functions.
afInst
:: Forall (Currying (ParamTypes domain))
:- Currying (ParamTypes domain) (ReturnType domain -> ReturnType domain)
afInst = inst
-- | 'Currying' entailment for pure functions.
idInst
:: Forall (Currying (ParamTypes domain))
:- Currying (ParamTypes domain) (ReturnType domain)
idInst = inst