{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE CPP #-}
{-# LANGUAGE ImplicitParams #-}
module Safe.Partial(Partial) where
#ifndef MIN_VERSION_base
#define MIN_VERSION_base(x,y,z) 1
#endif
#if __GLASGOW_HASKELL__ >= 800
#define OPTION 2
#elif __GLASGOW_HASKELL__ >= 710 && MIN_VERSION_base(4,8,1)
#define OPTION 1
#else
#define OPTION 0
#endif
#if OPTION == 0
import GHC.Exts
#else
import GHC.Stack
#endif
#if OPTION == 0
type Partial = (() :: Constraint)
#elif OPTION == 1
type Partial = (?loc :: CallStack)
#else
type Partial = HasCallStack
#endif