-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | The Axel programming language.
--   
--   Haskell's semantics, plus Lisp's macros. Meet Axel – a purely
--   functional, extensible, and powerful programming language.
@package axel
@version 0.0.9

module Axel.Eff.Console
data Console r
[PutStr] :: String -> Console ()
putStr :: forall effs_adKO. Member Console effs_adKO => String -> Eff effs_adKO ()
runEff :: LastMember IO effs => Eff (Console : effs) ~> Eff effs
putStrLn :: Member Console effs => String -> Eff effs ()

module Axel.Eff.FileSystem
data FileSystem a
[CopyFile] :: FilePath -> FilePath -> FileSystem ()
[CreateDirectoryIfMissing] :: Bool -> FilePath -> FileSystem ()
[DoesDirectoryExist] :: FilePath -> FileSystem Bool
[GetCurrentDirectory] :: FileSystem FilePath
[GetDirectoryContents] :: FilePath -> FileSystem [FilePath]
[GetTemporaryDirectory] :: FileSystem FilePath
[ReadFile] :: FilePath -> FileSystem String
[RemoveFile] :: FilePath -> FileSystem ()
[SetCurrentDirectory] :: FilePath -> FileSystem ()
[WriteFile] :: String -> FilePath -> FileSystem ()
writeFile :: forall effs_afBc. Member FileSystem effs_afBc => String -> FilePath -> Eff effs_afBc ()
setCurrentDirectory :: forall effs_afBb. Member FileSystem effs_afBb => FilePath -> Eff effs_afBb ()
removeFile :: forall effs_afBa. Member FileSystem effs_afBa => FilePath -> Eff effs_afBa ()
readFile :: forall effs_afB9. Member FileSystem effs_afB9 => FilePath -> Eff effs_afB9 String
getTemporaryDirectory :: forall effs_afB8. Member FileSystem effs_afB8 => Eff effs_afB8 FilePath
getDirectoryContents :: forall effs_afB7. Member FileSystem effs_afB7 => FilePath -> Eff effs_afB7 [FilePath]
getCurrentDirectory :: forall effs_afB6. Member FileSystem effs_afB6 => Eff effs_afB6 FilePath
doesDirectoryExist :: forall effs_afB5. Member FileSystem effs_afB5 => FilePath -> Eff effs_afB5 Bool
createDirectoryIfMissing :: forall effs_afB4. Member FileSystem effs_afB4 => Bool -> FilePath -> Eff effs_afB4 ()
copyFile :: forall effs_afB3. Member FileSystem effs_afB3 => FilePath -> FilePath -> Eff effs_afB3 ()
runEff :: LastMember IO effs => Eff (FileSystem : effs) ~> Eff effs
getDirectoryContentsRec :: Member FileSystem effs => FilePath -> Eff effs [FilePath]
withCurrentDirectory :: Member FileSystem effs => FilePath -> Eff effs a -> Eff effs a
withTemporaryDirectory :: Member FileSystem effs => (FilePath -> Eff effs a) -> Eff effs a

module Axel.Eff.Ghci
data Ghci r
[Exec] :: Ghci -> String -> Ghci [String]
[Start] :: Ghci Ghci
[Stop] :: Ghci -> Ghci ()
stop :: forall effs_aiX8. Member Ghci effs_aiX8 => Ghci -> Eff effs_aiX8 ()
start :: forall effs_aiX7. Member Ghci effs_aiX7 => Eff effs_aiX7 Ghci
exec :: forall effs_aiX6. Member Ghci effs_aiX6 => Ghci -> String -> Eff effs_aiX6 [String]
runEff :: LastMember IO effs => Eff (Ghci : effs) ~> Eff effs

module Axel.Eff.Process
data StreamSpecification
CreateStreams :: StreamSpecification
InheritStreams :: StreamSpecification
type CreateStreamsSym0 = CreateStreams
type InheritStreamsSym0 = InheritStreams
type SStreamSpecification = (Sing :: StreamSpecification -> Type)
type family StreamsHandler (a :: StreamSpecification) (f :: * -> *) :: *
type ProcessRunner' (streamSpec :: StreamSpecification) f = forall streamsHandler. (streamsHandler ~ StreamsHandler streamSpec f) => streamsHandler
type ProcessRunnerPrimitive (streamSpec :: StreamSpecification) (f :: * -> *) = FilePath -> [String] -> ProcessRunner' streamSpec f
type ProcessRunner (streamSpec :: StreamSpecification) (f :: * -> *) = (SingI streamSpec) => ProcessRunner' streamSpec f
data Process r
[GetArgs] :: Process [String]
[RunProcessCreatingStreams] :: FilePath -> [String] -> String -> Process (ExitCode, String, String)
[RunProcessInheritingStreams] :: FilePath -> [String] -> Process ExitCode
runProcessInheritingStreams :: forall effs_aKP0. Member Process effs_aKP0 => FilePath -> [String] -> Eff effs_aKP0 ExitCode
runProcessCreatingStreams :: forall effs_aKOZ. Member Process effs_aKOZ => FilePath -> [String] -> String -> Eff effs_aKOZ (ExitCode, String, String)
getArgs :: forall effs_aKOY. Member Process effs_aKOY => Eff effs_aKOY [String]
runEff :: LastMember IO effs => Eff (Process : effs) ~> Eff effs
runProcess :: forall (streamSpec :: StreamSpecification) effs. Member Process effs => FilePath -> [String] -> ProcessRunner streamSpec (Eff effs)
instance Data.Singletons.Internal.SingKind Axel.Eff.Process.StreamSpecification
instance Data.Singletons.Internal.SingI 'Axel.Eff.Process.CreateStreams
instance Data.Singletons.Internal.SingI 'Axel.Eff.Process.InheritStreams

module Axel.Haskell.Language
isOperator :: String -> Bool
haskellOperatorSymbols :: [(Char, String)]
haskellSyntaxSymbols :: [(Char, String)]

module Axel.Haskell.Prettify
prettifyHaskell :: String -> String

module Axel.Parse.AST
data Expression
LiteralChar :: Char -> Expression
LiteralInt :: Int -> Expression
LiteralString :: String -> Expression
SExpression :: [Expression] -> Expression
Symbol :: String -> Expression
toAxel :: Expression -> String
gensymCounter :: IORef Int
gensym :: IO Expression

-- | This allows splice-unquoting of both `[Expression]`s and
--   <a>SExpression</a>s, without requiring special syntax for each.
class ToExpressionList a
toExpressionList :: ToExpressionList a => a -> [Expression]
programToTopLevelExpressions :: Expression -> [Expression]
topLevelExpressionsToProgram :: [Expression] -> Expression
instance GHC.Show.Show Axel.Parse.AST.Expression
instance GHC.Classes.Eq Axel.Parse.AST.Expression
instance Axel.Parse.AST.ToExpressionList [Axel.Parse.AST.Expression]
instance Axel.Parse.AST.ToExpressionList Axel.Parse.AST.Expression

module Axel.Error
data Error
EvalError :: String -> Error
MacroError :: String -> Error
NormalizeError :: String -> [Expression] -> Error
ParseError :: String -> Error
ProjectError :: String -> Error
fatal :: String -> String -> a
runEff :: (Show e, LastMember IO effs) => Eff (Error e : effs) ~> Eff effs
instance GHC.Show.Show Axel.Error.Error

module Axel
mdo' :: (->) [Expression] Expression
quasiquote_AXEL_AUTOGENERATED_MACRO_DEFINITION :: (->) ([] Expression) (IO ([] Expression))
applyInfix_AXEL_AUTOGENERATED_MACRO_DEFINITION :: (->) ([] Expression) (IO ([] Expression))
defmacro_AXEL_AUTOGENERATED_MACRO_DEFINITION :: (->) ([] Expression) (IO ([] Expression))
def_AXEL_AUTOGENERATED_MACRO_DEFINITION :: (->) ([] Expression) (IO ([] Expression))
fnCase_AXEL_AUTOGENERATED_MACRO_DEFINITION :: (->) ([] Expression) (IO ([] Expression))
mdo_AXEL_AUTOGENERATED_MACRO_DEFINITION :: (->) ([] Expression) (IO ([] Expression))
if_AXEL_AUTOGENERATED_MACRO_DEFINITION :: (->) ([] Expression) (IO ([] Expression))

module Axel.Parse.Args
data Command
Convert :: FilePath -> Command
File :: FilePath -> Command
Project :: Command
Version :: Command
commandParser :: Parser Command

module Axel.Utils.Debug
unsafeTee :: String -> String
unsafeTeeS :: Show a => a -> a
unsafeTee' :: (a -> String) -> a -> a
unsafeTeeS' :: Show b => (a -> b) -> a -> a

module Axel.Utils.Display
data Delimiter
Commas :: Delimiter
Newlines :: Delimiter
Pipes :: Delimiter
Semicolons :: Delimiter
Spaces :: Delimiter
delimit :: Delimiter -> [String] -> String
lowerFirst :: String -> String
renderBlock :: [String] -> String
renderPragma :: String -> String
data Bracket
CurlyBraces :: Bracket
DoubleQuotes :: Bracket
Parentheses :: Bracket
SingleQuotes :: Bracket
SquareBrackets :: Bracket
surround :: Bracket -> String -> String
upperFirst :: String -> String

module Axel.Utils.Function
uncurry3 :: (a -> b -> c -> d) -> (a, b, c) -> d

module Axel.Utils.Lens
is :: APrism s t a b -> s -> Bool

module Axel.Utils.List
takeUntil :: Eq a => [a] -> [a] -> [a]

module Axel.Utils.Recursion
exhaustM :: (Eq a, Monad m) => (a -> m a) -> a -> m a
class Recursive a
bottomUpFmap :: Recursive a => (a -> a) -> a -> a
bottomUpTraverse :: (Recursive a, Monad m) => (a -> m a) -> a -> m a
topDownFmap :: Recursive a => (a -> a) -> a -> a

module Axel.Parse
parseReadMacro :: String -> String -> ParsecT String u Identity Expression
any' :: Stream s m Char => ParsecT s u m Char
whitespace :: Stream s m Char => ParsecT s u m String
literalChar :: Stream s m Char => ParsecT s u m Expression
literalInt :: Stream s m Char => ParsecT s u m Expression
literalList :: ParsecT String u Identity Expression
literalString :: ParsecT String u Identity Expression
quasiquotedExpression :: ParsecT String u Identity Expression
quotedExpression :: ParsecT String u Identity Expression
sExpressionItem :: ParsecT String u Identity Expression
sExpression :: ParsecT String u Identity Expression
infixSExpression :: ParsecT String u Identity Expression
spliceUnquotedExpression :: ParsecT String u Identity Expression
symbol :: Stream s Identity Char => ParsecT s u Identity Expression
unquotedExpression :: ParsecT String u Identity Expression
expression :: ParsecT String u Identity Expression
quoteParseExpression :: Expression -> Expression
parseMultiple :: Member (Error Error) effs => String -> Eff effs [Expression]
parseSingle :: Member (Error Error) effs => String -> Eff effs Expression
stripComments :: String -> String
parseSource :: Member (Error Error) effs => String -> Eff effs Expression
programToTopLevelExpressions :: Expression -> [Expression]
topLevelExpressionsToProgram :: [Expression] -> Expression
syntaxSymbols :: String
data Expression
LiteralChar :: Char -> Expression
LiteralInt :: Int -> Expression
LiteralString :: String -> Expression
SExpression :: [Expression] -> Expression
Symbol :: String -> Expression
instance Axel.Utils.Recursion.Recursive Axel.Parse.AST.Expression

module Axel.Haskell.Macros
hygenisizeMacroName :: (->) String String

module Axel.AST
class ToHaskell a
toHaskell :: ToHaskell a => a -> String
type Identifier = String
data CaseBlock
CaseBlock :: Expression -> [(Expression, Expression)] -> CaseBlock
[$sel:_expr:CaseBlock] :: CaseBlock -> Expression
[$sel:_matches:CaseBlock] :: CaseBlock -> [(Expression, Expression)]
data FunctionApplication
FunctionApplication :: Expression -> [Expression] -> FunctionApplication
[$sel:_function:FunctionApplication] :: FunctionApplication -> Expression
[$sel:_arguments:FunctionApplication] :: FunctionApplication -> [Expression]
data IfBlock
IfBlock :: Expression -> Expression -> Expression -> IfBlock
[$sel:_cond:IfBlock] :: IfBlock -> Expression
[$sel:_ifTrue:IfBlock] :: IfBlock -> Expression
[$sel:_ifFalse:IfBlock] :: IfBlock -> Expression
newtype TopLevel
TopLevel :: [Statement] -> TopLevel
[$sel:_statements:TopLevel] :: TopLevel -> [Statement]
data TypeDefinition
ProperType :: Identifier -> TypeDefinition
TypeConstructor :: FunctionApplication -> TypeDefinition
data DataDeclaration
DataDeclaration :: TypeDefinition -> [FunctionApplication] -> DataDeclaration
[$sel:_typeDefinition:DataDeclaration] :: DataDeclaration -> TypeDefinition
[$sel:_constructors:DataDeclaration] :: DataDeclaration -> [FunctionApplication]
data NewtypeDeclaration
NewtypeDeclaration :: TypeDefinition -> FunctionApplication -> NewtypeDeclaration
[$sel:_typeDefinition:NewtypeDeclaration] :: NewtypeDeclaration -> TypeDefinition
[$sel:_constructor:NewtypeDeclaration] :: NewtypeDeclaration -> FunctionApplication
data FunctionDefinition
FunctionDefinition :: Identifier -> [Expression] -> Expression -> [FunctionDefinition] -> FunctionDefinition
[$sel:_name:FunctionDefinition] :: FunctionDefinition -> Identifier
[$sel:_arguments:FunctionDefinition] :: FunctionDefinition -> [Expression]
[$sel:_body:FunctionDefinition] :: FunctionDefinition -> Expression
[$sel:_whereBindings:FunctionDefinition] :: FunctionDefinition -> [FunctionDefinition]
data Import
ImportItem :: Identifier -> Import
ImportType :: Identifier -> [Identifier] -> Import
data ImportSpecification
ImportAll :: ImportSpecification
ImportOnly :: [Import] -> ImportSpecification
data Lambda
Lambda :: [Expression] -> Expression -> Lambda
[$sel:_arguments:Lambda] :: Lambda -> [Expression]
[$sel:_body:Lambda] :: Lambda -> Expression
data LetBlock
LetBlock :: [(Expression, Expression)] -> Expression -> LetBlock
[$sel:_bindings:LetBlock] :: LetBlock -> [(Expression, Expression)]
[$sel:_body:LetBlock] :: LetBlock -> Expression
newtype MacroDefinition
MacroDefinition :: FunctionDefinition -> MacroDefinition
[$sel:_functionDefinition:MacroDefinition] :: MacroDefinition -> FunctionDefinition
data MacroImport
MacroImport :: Identifier -> [Identifier] -> MacroImport
[$sel:_moduleName:MacroImport] :: MacroImport -> Identifier
[$sel:_imports:MacroImport] :: MacroImport -> [Identifier]
newtype Pragma
Pragma :: String -> Pragma
[$sel:_pragmaSpecification:Pragma] :: Pragma -> String
data QualifiedImport
QualifiedImport :: Identifier -> Identifier -> ImportSpecification -> QualifiedImport
[$sel:_moduleName:QualifiedImport] :: QualifiedImport -> Identifier
[$sel:_alias:QualifiedImport] :: QualifiedImport -> Identifier
[$sel:_imports:QualifiedImport] :: QualifiedImport -> ImportSpecification
newtype RecordDefinition
RecordDefinition :: [(Identifier, Expression)] -> RecordDefinition
[$sel:_bindings:RecordDefinition] :: RecordDefinition -> [(Identifier, Expression)]
newtype RecordType
RecordType :: [(Identifier, Expression)] -> RecordType
[$sel:_fields:RecordType] :: RecordType -> [(Identifier, Expression)]
data RestrictedImport
RestrictedImport :: Identifier -> ImportSpecification -> RestrictedImport
[$sel:_moduleName:RestrictedImport] :: RestrictedImport -> Identifier
[$sel:_imports:RestrictedImport] :: RestrictedImport -> ImportSpecification
data TypeclassDefinition
TypeclassDefinition :: Expression -> [Expression] -> [TypeSignature] -> TypeclassDefinition
[$sel:_name:TypeclassDefinition] :: TypeclassDefinition -> Expression
[$sel:_constraints:TypeclassDefinition] :: TypeclassDefinition -> [Expression]
[$sel:_signatures:TypeclassDefinition] :: TypeclassDefinition -> [TypeSignature]
data TypeclassInstance
TypeclassInstance :: Expression -> [FunctionDefinition] -> TypeclassInstance
[$sel:_instanceName:TypeclassInstance] :: TypeclassInstance -> Expression
[$sel:_definitions:TypeclassInstance] :: TypeclassInstance -> [FunctionDefinition]
data TypeSignature
TypeSignature :: Identifier -> Expression -> TypeSignature
[$sel:_name:TypeSignature] :: TypeSignature -> Identifier
[$sel:_typeDefinition:TypeSignature] :: TypeSignature -> Expression
data TypeSynonym
TypeSynonym :: Expression -> Expression -> TypeSynonym
[$sel:_alias:TypeSynonym] :: TypeSynonym -> Expression
[$sel:_definition:TypeSynonym] :: TypeSynonym -> Expression
data Expression
ECaseBlock :: CaseBlock -> Expression
EEmptySExpression :: Expression
EFunctionApplication :: FunctionApplication -> Expression
EIdentifier :: Identifier -> Expression
EIfBlock :: IfBlock -> Expression
ELambda :: Lambda -> Expression
ELetBlock :: LetBlock -> Expression
ELiteral :: Literal -> Expression
ERawExpression :: String -> Expression
ERecordDefinition :: RecordDefinition -> Expression
ERecordType :: RecordType -> Expression
data Literal
LChar :: Char -> Literal
LInt :: Int -> Literal
LString :: String -> Literal
data Statement
SDataDeclaration :: DataDeclaration -> Statement
SFunctionDefinition :: FunctionDefinition -> Statement
SMacroDefinition :: MacroDefinition -> Statement
SMacroImport :: MacroImport -> Statement
SModuleDeclaration :: Identifier -> Statement
SNewtypeDeclaration :: NewtypeDeclaration -> Statement
SPragma :: Pragma -> Statement
SQualifiedImport :: QualifiedImport -> Statement
SRawStatement :: String -> Statement
SRestrictedImport :: RestrictedImport -> Statement
STopLevel :: TopLevel -> Statement
STypeclassDefinition :: TypeclassDefinition -> Statement
STypeclassInstance :: TypeclassInstance -> Statement
STypeSignature :: TypeSignature -> Statement
STypeSynonym :: TypeSynonym -> Statement
SUnrestrictedImport :: Identifier -> Statement
_SUnrestrictedImport :: Prism' Statement Identifier
_STypeSynonym :: Prism' Statement TypeSynonym
_STypeSignature :: Prism' Statement TypeSignature
_STypeclassInstance :: Prism' Statement TypeclassInstance
_STypeclassDefinition :: Prism' Statement TypeclassDefinition
_STopLevel :: Prism' Statement TopLevel
_SRestrictedImport :: Prism' Statement RestrictedImport
_SRawStatement :: Prism' Statement String
_SQualifiedImport :: Prism' Statement QualifiedImport
_SPragma :: Prism' Statement Pragma
_SNewtypeDeclaration :: Prism' Statement NewtypeDeclaration
_SModuleDeclaration :: Prism' Statement Identifier
_SMacroImport :: Prism' Statement MacroImport
_SMacroDefinition :: Prism' Statement MacroDefinition
_SFunctionDefinition :: Prism' Statement FunctionDefinition
_SDataDeclaration :: Prism' Statement DataDeclaration
type Program = [Statement]
class HasExpr s a | s -> a
expr :: HasExpr s a => Lens' s a
class HasMatches s a | s -> a
matches :: HasMatches s a => Lens' s a
class HasConstructors s a | s -> a
constructors :: HasConstructors s a => Lens' s a
class HasTypeDefinition s a | s -> a
typeDefinition :: HasTypeDefinition s a => Lens' s a
class HasArguments s a | s -> a
arguments :: HasArguments s a => Lens' s a
class HasFunction s a | s -> a
function :: HasFunction s a => Lens' s a
class HasBody s a | s -> a
body :: HasBody s a => Lens' s a
class HasName s a | s -> a
name :: HasName s a => Lens' s a
class HasWhereBindings s a | s -> a
whereBindings :: HasWhereBindings s a => Lens' s a
class HasBindings s a | s -> a
bindings :: HasBindings s a => Lens' s a
class HasCond s a | s -> a
cond :: HasCond s a => Lens' s a
class HasIfFalse s a | s -> a
ifFalse :: HasIfFalse s a => Lens' s a
class HasIfTrue s a | s -> a
ifTrue :: HasIfTrue s a => Lens' s a
class HasFunctionDefinition s a | s -> a
functionDefinition :: HasFunctionDefinition s a => Lens' s a
class HasImports s a | s -> a
imports :: HasImports s a => Lens' s a
class HasModuleName s a | s -> a
moduleName :: HasModuleName s a => Lens' s a
class HasConstructor s a | s -> a
constructor :: HasConstructor s a => Lens' s a
class HasPragmaSpecification s a | s -> a
pragmaSpecification :: HasPragmaSpecification s a => Lens' s a
class HasAlias s a | s -> a
alias :: HasAlias s a => Lens' s a
class HasFields s a | s -> a
fields :: HasFields s a => Lens' s a
class HasStatements s a | s -> a
statements :: HasStatements s a => Lens' s a
class HasConstraints s a | s -> a
constraints :: HasConstraints s a => Lens' s a
class HasSignatures s a | s -> a
signatures :: HasSignatures s a => Lens' s a
class HasDefinitions s a | s -> a
definitions :: HasDefinitions s a => Lens' s a
class HasInstanceName s a | s -> a
instanceName :: HasInstanceName s a => Lens' s a
class HasDefinition s a | s -> a
definition :: HasDefinition s a => Lens' s a
instance Axel.AST.HasDefinition Axel.AST.TypeSynonym Axel.AST.Expression
instance Axel.AST.ToHaskell Axel.AST.TypeSynonym
instance Axel.AST.HasAlias Axel.AST.TypeSynonym Axel.AST.Expression
instance Axel.AST.ToHaskell Axel.AST.CaseBlock
instance Axel.AST.ToHaskell Axel.AST.FunctionApplication
instance Axel.AST.ToHaskell Axel.AST.TypeSignature
instance Axel.AST.ToHaskell Axel.AST.FunctionDefinition
instance Axel.AST.ToHaskell Axel.AST.DataDeclaration
instance Axel.AST.ToHaskell Axel.AST.IfBlock
instance Axel.AST.ToHaskell Axel.AST.NewtypeDeclaration
instance Axel.AST.ToHaskell Axel.AST.Lambda
instance Axel.AST.ToHaskell Axel.AST.Pragma
instance Axel.AST.ToHaskell Axel.AST.LetBlock
instance Axel.AST.ToHaskell Axel.AST.MacroDefinition
instance Axel.AST.ToHaskell Axel.AST.MacroImport
instance Axel.AST.ToHaskell Axel.AST.QualifiedImport
instance Axel.AST.ToHaskell Axel.AST.RecordDefinition
instance Axel.AST.ToHaskell Axel.AST.RecordType
instance Axel.AST.ToHaskell Axel.AST.RestrictedImport
instance Axel.AST.ToHaskell Axel.AST.TopLevel
instance Axel.AST.ToHaskell Axel.AST.TypeclassDefinition
instance Axel.AST.ToHaskell Axel.AST.TypeclassInstance
instance Axel.Utils.Recursion.Recursive Axel.AST.Expression
instance Axel.AST.HasName Axel.AST.TypeSignature Axel.AST.Identifier
instance Axel.AST.HasTypeDefinition Axel.AST.TypeSignature Axel.AST.Expression
instance Axel.AST.HasInstanceName Axel.AST.TypeclassInstance Axel.AST.Expression
instance Axel.AST.HasDefinitions Axel.AST.TypeclassInstance [Axel.AST.FunctionDefinition]
instance Axel.AST.HasSignatures Axel.AST.TypeclassDefinition [Axel.AST.TypeSignature]
instance Axel.AST.HasConstraints Axel.AST.TypeclassDefinition [Axel.AST.Expression]
instance Axel.AST.HasName Axel.AST.TypeclassDefinition Axel.AST.Expression
instance Axel.AST.HasStatements Axel.AST.TopLevel [Axel.AST.Statement]
instance Axel.AST.HasImports Axel.AST.RestrictedImport Axel.AST.ImportSpecification
instance Axel.AST.HasModuleName Axel.AST.RestrictedImport Axel.AST.Identifier
instance Axel.AST.HasFields Axel.AST.RecordType [(Axel.AST.Identifier, Axel.AST.Expression)]
instance Axel.AST.HasBindings Axel.AST.RecordDefinition [(Axel.AST.Identifier, Axel.AST.Expression)]
instance Axel.AST.HasAlias Axel.AST.QualifiedImport Axel.AST.Identifier
instance Axel.AST.HasImports Axel.AST.QualifiedImport Axel.AST.ImportSpecification
instance Axel.AST.HasModuleName Axel.AST.QualifiedImport Axel.AST.Identifier
instance Axel.AST.HasPragmaSpecification Axel.AST.Pragma GHC.Base.String
instance Axel.AST.HasConstructor Axel.AST.NewtypeDeclaration Axel.AST.FunctionApplication
instance Axel.AST.HasTypeDefinition Axel.AST.NewtypeDeclaration Axel.AST.TypeDefinition
instance Axel.AST.HasModuleName Axel.AST.MacroImport Axel.AST.Identifier
instance Axel.AST.HasImports Axel.AST.MacroImport [Axel.AST.Identifier]
instance Axel.AST.HasFunctionDefinition Axel.AST.MacroDefinition Axel.AST.FunctionDefinition
instance Axel.AST.HasIfTrue Axel.AST.IfBlock Axel.AST.Expression
instance Axel.AST.HasIfFalse Axel.AST.IfBlock Axel.AST.Expression
instance Axel.AST.HasCond Axel.AST.IfBlock Axel.AST.Expression
instance Axel.AST.HasBindings Axel.AST.LetBlock [(Axel.AST.Expression, Axel.AST.Expression)]
instance Axel.AST.HasBody Axel.AST.LetBlock Axel.AST.Expression
instance Axel.AST.HasArguments Axel.AST.Lambda [Axel.AST.Expression]
instance Axel.AST.HasBody Axel.AST.Lambda Axel.AST.Expression
instance Axel.AST.HasWhereBindings Axel.AST.FunctionDefinition [Axel.AST.FunctionDefinition]
instance Axel.AST.HasName Axel.AST.FunctionDefinition Axel.AST.Identifier
instance Axel.AST.HasBody Axel.AST.FunctionDefinition Axel.AST.Expression
instance Axel.AST.HasArguments Axel.AST.FunctionDefinition [Axel.AST.Expression]
instance Axel.AST.HasFunction Axel.AST.FunctionApplication Axel.AST.Expression
instance Axel.AST.HasArguments Axel.AST.FunctionApplication [Axel.AST.Expression]
instance Axel.AST.HasTypeDefinition Axel.AST.DataDeclaration Axel.AST.TypeDefinition
instance Axel.AST.HasConstructors Axel.AST.DataDeclaration [Axel.AST.FunctionApplication]
instance Axel.AST.HasMatches Axel.AST.CaseBlock [(Axel.AST.Expression, Axel.AST.Expression)]
instance Axel.AST.HasExpr Axel.AST.CaseBlock Axel.AST.Expression
instance GHC.Show.Show Axel.AST.TopLevel
instance GHC.Classes.Eq Axel.AST.TopLevel
instance GHC.Show.Show Axel.AST.Statement
instance GHC.Classes.Eq Axel.AST.Statement
instance GHC.Show.Show Axel.AST.DataDeclaration
instance GHC.Classes.Eq Axel.AST.DataDeclaration
instance GHC.Show.Show Axel.AST.NewtypeDeclaration
instance GHC.Classes.Eq Axel.AST.NewtypeDeclaration
instance GHC.Show.Show Axel.AST.TypeDefinition
instance GHC.Classes.Eq Axel.AST.TypeDefinition
instance GHC.Show.Show Axel.AST.MacroDefinition
instance GHC.Classes.Eq Axel.AST.MacroDefinition
instance GHC.Show.Show Axel.AST.TypeclassInstance
instance GHC.Classes.Eq Axel.AST.TypeclassInstance
instance GHC.Show.Show Axel.AST.FunctionDefinition
instance GHC.Classes.Eq Axel.AST.FunctionDefinition
instance GHC.Show.Show Axel.AST.TypeclassDefinition
instance GHC.Classes.Eq Axel.AST.TypeclassDefinition
instance GHC.Show.Show Axel.AST.TypeSignature
instance GHC.Classes.Eq Axel.AST.TypeSignature
instance GHC.Show.Show Axel.AST.TypeSynonym
instance GHC.Classes.Eq Axel.AST.TypeSynonym
instance GHC.Show.Show Axel.AST.CaseBlock
instance GHC.Classes.Eq Axel.AST.CaseBlock
instance GHC.Show.Show Axel.AST.FunctionApplication
instance GHC.Classes.Eq Axel.AST.FunctionApplication
instance GHC.Show.Show Axel.AST.IfBlock
instance GHC.Classes.Eq Axel.AST.IfBlock
instance GHC.Show.Show Axel.AST.Lambda
instance GHC.Classes.Eq Axel.AST.Lambda
instance GHC.Show.Show Axel.AST.LetBlock
instance GHC.Classes.Eq Axel.AST.LetBlock
instance GHC.Show.Show Axel.AST.RecordDefinition
instance GHC.Classes.Eq Axel.AST.RecordDefinition
instance GHC.Show.Show Axel.AST.RecordType
instance GHC.Classes.Eq Axel.AST.RecordType
instance GHC.Show.Show Axel.AST.Expression
instance GHC.Classes.Eq Axel.AST.Expression
instance GHC.Show.Show Axel.AST.Literal
instance GHC.Classes.Eq Axel.AST.Literal
instance GHC.Show.Show Axel.AST.RestrictedImport
instance GHC.Classes.Eq Axel.AST.RestrictedImport
instance GHC.Show.Show Axel.AST.QualifiedImport
instance GHC.Classes.Eq Axel.AST.QualifiedImport
instance GHC.Show.Show Axel.AST.Pragma
instance GHC.Classes.Eq Axel.AST.Pragma
instance GHC.Show.Show Axel.AST.MacroImport
instance GHC.Classes.Eq Axel.AST.MacroImport
instance GHC.Show.Show Axel.AST.ImportSpecification
instance GHC.Classes.Eq Axel.AST.ImportSpecification
instance GHC.Show.Show Axel.AST.Import
instance GHC.Classes.Eq Axel.AST.Import
instance Axel.AST.ToHaskell Axel.AST.Statement
instance Axel.AST.ToHaskell Axel.AST.TypeDefinition
instance Axel.AST.ToHaskell Axel.AST.Expression
instance Axel.AST.ToHaskell Axel.AST.Literal
instance Axel.AST.ToHaskell Axel.AST.ImportSpecification
instance Axel.AST.ToHaskell Axel.AST.Import

module Axel.Normalize
normalizeExpression :: Member (Error Error) effs => Expression -> Eff effs Expression
normalizeFunctionDefinition :: Member (Error Error) effs => [Expression] -> Identifier -> [Expression] -> Expression -> [Expression] -> Eff effs FunctionDefinition
normalizeStatement :: Member (Error Error) effs => Expression -> Eff effs Statement

module Axel.Denormalize
denormalizeExpression :: Expression -> Expression
denormalizeImportSpecification :: ImportSpecification -> Expression
denormalizeStatement :: Statement -> Expression

module Axel.Utils.String
replace :: String -> String -> String -> String
s :: QuasiQuoter

module Axel.Haskell.Converter
renderRaw :: Pretty a => a -> String
unsupportedExpr :: Pretty a => a -> Expression
unsupportedStmt :: Pretty a => a -> Statement
class ToExpr a
toExpr :: ToExpr a => a b -> Expression
class ToStmts a
toStmts :: ToStmts a => a b -> [Statement]
toId :: ToExpr a => a b -> String
declHeadToTyDef :: DeclHead a -> TypeDefinition
tyDefToExpr :: TypeDefinition -> Expression
exprToTyDef :: Expression -> TypeDefinition
toFunApp :: Expression -> FunctionApplication
bindsToFunDefs :: Maybe (Binds a) -> [FunctionDefinition]
altToClause :: Alt a -> (Expression, Expression)
bindsToClauses :: Binds a -> [(Expression, Expression)]
instDeclToFunDef :: InstDecl a -> FunctionDefinition
classDeclToTySig :: ClassDecl a -> TypeSignature
contextToExprs :: Maybe (Context a) -> [Expression]
convertFile :: (LastMember IO effs, Members '[Console, FileSystem] effs) => FilePath -> FilePath -> Eff effs String
instance Axel.Haskell.Converter.ToStmts Language.Haskell.Exts.Syntax.ModulePragma
instance Axel.Haskell.Converter.ToStmts Language.Haskell.Exts.Syntax.ImportDecl
instance Axel.Haskell.Converter.ToStmts Language.Haskell.Exts.Syntax.Module
instance Axel.Haskell.Converter.ToStmts Language.Haskell.Exts.Syntax.Match
instance Axel.Haskell.Converter.ToStmts Language.Haskell.Exts.Syntax.Decl
instance Axel.Haskell.Converter.ToExpr Language.Haskell.Exts.Syntax.Name
instance Axel.Haskell.Converter.ToExpr Language.Haskell.Exts.Syntax.ModuleName
instance Axel.Haskell.Converter.ToExpr Language.Haskell.Exts.Syntax.CName
instance Axel.Haskell.Converter.ToExpr Language.Haskell.Exts.Syntax.SpecialCon
instance Axel.Haskell.Converter.ToExpr Language.Haskell.Exts.Syntax.QName
instance Axel.Haskell.Converter.ToExpr Language.Haskell.Exts.Syntax.TyVarBind
instance Axel.Haskell.Converter.ToExpr Language.Haskell.Exts.Syntax.MaybePromotedName
instance Axel.Haskell.Converter.ToExpr Language.Haskell.Exts.Syntax.Promoted
instance Axel.Haskell.Converter.ToExpr Language.Haskell.Exts.Syntax.Type
instance Axel.Haskell.Converter.ToExpr Language.Haskell.Exts.Syntax.ModuleHead
instance Axel.Haskell.Converter.ToExpr Language.Haskell.Exts.Syntax.QualConDecl
instance Axel.Haskell.Converter.ToExpr Language.Haskell.Exts.Syntax.Literal
instance Axel.Haskell.Converter.ToExpr Language.Haskell.Exts.Syntax.Pat
instance Axel.Haskell.Converter.ToExpr Language.Haskell.Exts.Syntax.QOp
instance Axel.Haskell.Converter.ToExpr Language.Haskell.Exts.Syntax.Exp
instance Axel.Haskell.Converter.ToExpr Language.Haskell.Exts.Syntax.Rhs
instance Axel.Haskell.Converter.ToExpr Language.Haskell.Exts.Syntax.InstHead
instance Axel.Haskell.Converter.ToExpr Language.Haskell.Exts.Syntax.InstRule
instance Axel.Haskell.Converter.ToExpr Language.Haskell.Exts.Syntax.Asst

module Axel.Haskell.Stack
type ProjectPath = FilePath
type StackageId = String
type StackageResolver = String
type Target = String
type Version = String
stackageResolverWithAxel :: StackageResolver
axelStackageVersion :: Version
axelStackageId :: StackageId
getStackProjectTargets :: Members '[FileSystem, Process] effs => ProjectPath -> Eff effs [Target]
addStackDependency :: Member FileSystem effs => StackageId -> ProjectPath -> Eff effs ()
buildStackProject :: Members '[Console, Error Error, FileSystem, Process] effs => ProjectPath -> Eff effs ()
createStackProject :: Members '[FileSystem, Process] effs => String -> Eff effs ()
runStackProject :: Members '[Console, Error Error, FileSystem, Process] effs => ProjectPath -> Eff effs ()
setStackageResolver :: Members '[FileSystem, Process] effs => ProjectPath -> StackageResolver -> Eff effs ()
includeAxelArguments :: [String]
compileFile :: forall (streamSpec :: StreamSpecification) effs. Member Process effs => FilePath -> ProcessRunner streamSpec (Eff effs)
interpretFile :: forall (streamSpec :: StreamSpecification) effs. Member Process effs => FilePath -> ProcessRunner streamSpec (Eff effs)

module Axel.Eff.Resource
newtype ResourceId
ResourceId :: String -> ResourceId
data Resource a
[GetResourcePath] :: ResourceId -> Resource FilePath
getResourcePath :: forall effs_a1r72. Member Resource effs_a1r72 => ResourceId -> Eff effs_a1r72 FilePath
runEff :: LastMember IO effs => Eff (Resource : effs) ~> Eff effs
readResource :: Members '[FileSystem, Resource] effs => ResourceId -> Eff effs String
astDefinition :: ResourceId
macroDefinitionAndEnvironmentFooter :: ResourceId
macroDefinitionAndEnvironmentHeader :: ResourceId
macroScaffold :: ResourceId
newProjectTemplate :: ResourceId

module Axel.Macros
type ModuleInfo = Map Identifier (FilePath, Bool)
hygenisizeMacroDefinition :: MacroDefinition -> MacroDefinition
generateMacroProgram :: Members '[Error Error, FileSystem, Resource] effs => Identifier -> [MacroDefinition] -> [Statement] -> [Expression] -> Eff effs (String, String, String)
expansionPass :: Members '[Error Error, FileSystem, Ghci, Process, Resource, State ModuleInfo] effs => Ghci -> (FilePath -> Eff effs a) -> Expression -> Eff effs Expression
exhaustivelyExpandMacros :: Members '[Error Error, FileSystem, Ghci, Process, Resource, State ModuleInfo] effs => (FilePath -> Eff effs a) -> Expression -> Eff effs Expression
isStatementNonconflicting :: Statement -> Bool
isMacroImported :: Identifier -> [Statement] -> Bool
typeMacroDefinitions :: [MacroDefinition] -> [TypeSignature]
expandMacros :: Members '[Error Error, FileSystem, Ghci, Process, Resource, State ModuleInfo] effs => Ghci -> (FilePath -> Eff effs a) -> [Expression] -> Eff effs [Statement]
expandMacroApplication :: Members '[Error Error, FileSystem, Ghci, Process, Resource] effs => Ghci -> Identifier -> [MacroDefinition] -> [Statement] -> [Expression] -> Eff effs [Expression]
lookupMacroDefinitions :: Identifier -> [MacroDefinition] -> [MacroDefinition]
isMacroDefinitionStatement :: Statement -> Bool
evalMacro :: forall effs. Members '[Error Error, FileSystem, Ghci, Process] effs => Ghci -> String -> String -> String -> Eff effs String

module Axel.Haskell.File
convertList :: Expression -> Expression
convertUnit :: Expression -> Expression
readModuleInfo :: Members '[Error Error, FileSystem] effs => [FilePath] -> Eff effs ModuleInfo
transpileSource :: Members '[Console, Error Error, FileSystem, Ghci, Process, Resource, State ModuleInfo] effs => String -> Eff effs String
convertExtension :: String -> String -> FilePath -> FilePath
axelPathToHaskellPath :: FilePath -> FilePath
haskellPathToAxelPath :: FilePath -> FilePath

-- | Convert a file in place.
convertFile' :: (LastMember IO effs, Members '[Console, FileSystem] effs) => FilePath -> Eff effs FilePath
transpileFile :: Members '[Console, Error Error, FileSystem, Ghci, Process, Resource, State ModuleInfo] effs => FilePath -> FilePath -> Eff effs ()

-- | Transpile a file in place.
transpileFile' :: Members '[Console, Error Error, FileSystem, Ghci, Process, Resource, State ModuleInfo] effs => FilePath -> Eff effs FilePath
evalFile :: Members '[Console, Error Error, FileSystem, Process, Resource] effs => FilePath -> Eff effs ()

module Axel.Haskell.Project
type ProjectPath = FilePath
newProject :: Members '[FileSystem, Process, Resource] effs => String -> Eff effs ()
transpileProject :: Members '[Console, Error Error, FileSystem, Ghci, Process, Resource] effs => Eff effs [FilePath]
buildProject :: Members '[Console, Error Error, FileSystem, Ghci, Process, Resource] effs => Eff effs ()
runProject :: Members '[Console, Error Error, FileSystem, Process] effs => Eff effs ()
