Jikka-5.0.11.1: A transpiler from Python to C++ for competitive programming
Copyright(c) Kimiyuki Onaka 2020
LicenseApache License 2.0
Maintainerkimiyuki95@gmail.com
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Jikka.Core.Convert.ANormal

Description

 
Synopsis

Documentation

run :: (MonadAlpha m, MonadError Error m) => Program -> m Program Source #

run makes a given program A-normal form. A program is an A-normal form iff assigned exprs of all let-statements are values or function applications. For example, this converts the following:

(let x = 1 in x) + ((fun y -> y) 1)

to:

let x = 1
in let f = fun y -> y
in let z = f x
in z