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