module Internal.Quasi.Quasi where

import qualified Data.List as List

isNotDefinedAs :: String -> String -> a
isNotDefinedAs :: String -> String -> a
isNotDefinedAs name :: String
name as :: String
as = String -> a
forall a. HasCallStack => String -> a
error (String -> a) -> String -> a
forall a b. (a -> b) -> a -> b
$ "You cannot use " String -> String -> String
forall a. Semigroup a => a -> a -> a
<> String
name String -> String -> String
forall a. Semigroup a => a -> a -> a
<> " quasi as " String -> String -> String
forall a. Semigroup a => a -> a -> a
<> String
as

unwrap :: Either [String] a -> a
unwrap :: Either [String] a -> a
unwrap (Left a :: [String]
a) = String -> a
forall a. HasCallStack => String -> a
error (String -> a) -> String -> a
forall a b. (a -> b) -> a -> b
$ String -> [String] -> String
forall a. [a] -> [[a]] -> [a]
List.intercalate ", " [String]
a
unwrap (Right a :: a
a ) = a
a