From 833cf23482ecfb0e2d89343e190e3085692d6f42 Mon Sep 17 00:00:00 2001 From: Yair Chuchem Date: Tue, 19 Apr 2016 14:42:50 +0300 Subject: [PATCH] use stack dependencies lamdu-calculus and AlgoW rather than submodule --- .atom-build.json | 4 --- .gitmodules | 3 -- Lamdu.cabal | 37 +++-------------------- Lamdu/Builtins/Anchors.hs | 4 +-- Lamdu/Builtins/PrimVal.hs | 6 ++-- Lamdu/Compiler/Flatten.hs | 6 ++-- Lamdu/Data/Anchors.hs | 2 +- Lamdu/Data/Definition.hs | 4 +-- Lamdu/Data/Export/Codejam.hs | 6 ++-- Lamdu/Data/Export/JSON.hs | 8 ++--- Lamdu/Data/Export/JSON/Codec.hs | 22 +++++++------- Lamdu/Data/Ops.hs | 4 +-- Lamdu/Data/Ops/Subexprs.hs | 4 +-- Lamdu/Eval/JS.hs | 8 ++--- Lamdu/Eval/JS/Compiler.hs | 10 +++--- Lamdu/Eval/Manager.hs | 2 +- Lamdu/Eval/Results.hs | 4 +-- Lamdu/Eval/Results/Process.hs | 20 ++++++------ Lamdu/Expr/GenIds.hs | 8 ++--- Lamdu/Expr/IRef.hs | 12 ++++---- Lamdu/Expr/IRef/Infer.hs | 8 ++--- Lamdu/Expr/Load.hs | 6 ++-- Lamdu/Expr/RecordVal.hs | 6 ++-- Lamdu/Expr/UniqueId.hs | 6 ++-- Lamdu/GUI/DefinitionEdit.hs | 2 +- Lamdu/GUI/EvalView.hs | 6 ++-- Lamdu/GUI/ExpressionEdit/CaseEdit.hs | 4 +-- Lamdu/GUI/ExpressionEdit/HoleEdit/Info.hs | 2 +- Lamdu/GUI/ExpressionGui.hs | 4 +-- Lamdu/GUI/TypeView.hs | 6 ++-- Lamdu/Sugar/Convert.hs | 12 ++++---- Lamdu/Sugar/Convert/Apply.hs | 8 ++--- Lamdu/Sugar/Convert/Binder.hs | 6 ++-- Lamdu/Sugar/Convert/Binder/Float.hs | 10 +++--- Lamdu/Sugar/Convert/Binder/Inline.hs | 6 ++-- Lamdu/Sugar/Convert/Binder/Params.hs | 20 ++++++------ Lamdu/Sugar/Convert/Binder/Redex.hs | 10 +++--- Lamdu/Sugar/Convert/Binder/Types.hs | 4 +-- Lamdu/Sugar/Convert/Case.hs | 8 ++--- Lamdu/Sugar/Convert/DefExpr.hs | 10 +++--- Lamdu/Sugar/Convert/Expression.hs | 6 ++-- Lamdu/Sugar/Convert/Expression/Actions.hs | 6 ++-- Lamdu/Sugar/Convert/GetField.hs | 4 +-- Lamdu/Sugar/Convert/GetVar.hs | 5 +-- Lamdu/Sugar/Convert/Hole.hs | 21 +++++++------ Lamdu/Sugar/Convert/Hole/ResultScore.hs | 6 ++-- Lamdu/Sugar/Convert/Hole/Suggest.hs | 28 ++++++++--------- Lamdu/Sugar/Convert/Inject.hs | 6 ++-- Lamdu/Sugar/Convert/Input.hs | 6 ++-- Lamdu/Sugar/Convert/Monad.hs | 8 ++--- Lamdu/Sugar/Convert/Nominal.hs | 4 +-- Lamdu/Sugar/Convert/ParamList.hs | 8 ++--- Lamdu/Sugar/Convert/Record.hs | 8 ++--- Lamdu/Sugar/Convert/TIdG.hs | 2 +- Lamdu/Sugar/Convert/Text.hs | 4 +-- Lamdu/Sugar/Internal/EntityId.hs | 6 ++-- Lamdu/Sugar/Lens.hs | 2 +- Lamdu/Sugar/Names/Walk.hs | 4 +-- Lamdu/Sugar/OrderTags.hs | 14 ++++----- Lamdu/Sugar/Types.hs | 10 +++--- stack.yaml | 6 ++++ submodules/AlgoW | 1 - 62 files changed, 227 insertions(+), 256 deletions(-) delete mode 100644 .atom-build.json delete mode 160000 submodules/AlgoW diff --git a/.atom-build.json b/.atom-build.json deleted file mode 100644 index a44f6302e..000000000 --- a/.atom-build.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "cmd": "cabal build", - "errorMatch": "\\n(?[^:\\n]+):(?\\d+):(?\\d+):" -} diff --git a/.gitmodules b/.gitmodules index 12531db64..e69de29bb 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +0,0 @@ -[submodule "submodules/AlgoW"] - path = submodules/AlgoW - url = https://github.com/lamdu/Algorithm-W-Step-By-Step diff --git a/Lamdu.cabal b/Lamdu.cabal index 6554f236a..8460abd26 100644 --- a/Lamdu.cabal +++ b/Lamdu.cabal @@ -29,7 +29,6 @@ Flag noprettyclass Library -- Modules exported by the library. hs-Source-Dirs: bottlelib - , submodules/AlgoW Exposed-modules: Control.Applicative.Utils , Control.Concurrent.Utils @@ -39,7 +38,6 @@ Library , Control.Monad.Trans.State.Utils , Control.Monad.Unit , Data.Binary.Utils - , Data.ByteString.Hex , Data.ByteString.NFData , Data.ByteString.Utils , Data.CurAndPrev @@ -137,8 +135,8 @@ Library Executable lamdu hs-Source-Dirs: . - , submodules/AlgoW - Build-Depends: GLFW-b + Build-Depends: AlgoW + , GLFW-b , JuicyPixels , Lamdu , List >= 0.5.1 @@ -159,6 +157,7 @@ Executable lamdu , filepath , graphics-drawingcombinators >= 1.5.1.2 , hashable + , lamdu-calculus , language-ecmascript >= 0.17 , lens , nodejs-exec @@ -181,9 +180,7 @@ Executable lamdu else build-depends: pretty >=1.1 && <1.1.2 , prettyclass ==1.0.0.0 - Other-Modules: Data.Hashable.Generic - , Data.Map.Utils - , Lamdu.Builtins.Anchors + Other-Modules: Lamdu.Builtins.Anchors , Lamdu.Builtins.PrimVal , Lamdu.CharClassification , Lamdu.Compiler.Flatten @@ -204,25 +201,12 @@ Executable lamdu , Lamdu.Eval.Manager , Lamdu.Eval.Results , Lamdu.Eval.Results.Process - , Lamdu.Expr.Constraints - , Lamdu.Expr.FlatComposite , Lamdu.Expr.GenIds , Lamdu.Expr.IRef , Lamdu.Expr.IRef.Infer - , Lamdu.Expr.Identifier - , Lamdu.Expr.Lens , Lamdu.Expr.Load - , Lamdu.Expr.Nominal - , Lamdu.Expr.Pure , Lamdu.Expr.RecordVal - , Lamdu.Expr.Scheme - , Lamdu.Expr.Type - , Lamdu.Expr.Type.Match - , Lamdu.Expr.TypeVars , Lamdu.Expr.UniqueId - , Lamdu.Expr.Val - , Lamdu.Expr.Val.Annotated - , Lamdu.Expr.Val.Arbitrary , Lamdu.Font , Lamdu.Formatting , Lamdu.GUI.CodeEdit @@ -272,17 +256,6 @@ Executable lamdu , Lamdu.GUI.WidgetIdIRef , Lamdu.GUI.WidgetIds , Lamdu.GUI.Zoom - , Lamdu.Infer - , Lamdu.Infer.Error - , Lamdu.Infer.Internal.Constraints - , Lamdu.Infer.Internal.Monad - , Lamdu.Infer.Internal.Scheme - , Lamdu.Infer.Internal.Scope - , Lamdu.Infer.Internal.Subst - , Lamdu.Infer.Internal.Unify - , Lamdu.Infer.Load - , Lamdu.Infer.Unify - , Lamdu.Infer.Update , Lamdu.Main , Lamdu.Opts , Lamdu.Style @@ -328,8 +301,6 @@ Executable lamdu , Lamdu.VersionControl , Lamdu.VersionControl.Actions , Paths_Lamdu - , Text.PrettyPrint.HughesPJClass.Compat - , Text.PrettyPrint.Utils ghc-options: -O2 -Wall -threaded -- ghc-options is prepended to ghc-prof-options diff --git a/Lamdu/Builtins/Anchors.hs b/Lamdu/Builtins/Anchors.hs index 009f4ef2a..de17ad882 100644 --- a/Lamdu/Builtins/Anchors.hs +++ b/Lamdu/Builtins/Anchors.hs @@ -12,8 +12,8 @@ module Lamdu.Builtins.Anchors import Data.List.Utils (rightPad) import Data.String (IsString(..)) -import Lamdu.Expr.Type (Tag) -import qualified Lamdu.Expr.Type as T +import Lamdu.Calc.Type (Tag) +import qualified Lamdu.Calc.Type as T -- We want the translation to UUID and back to not be lossy, so we -- canonize to UUID format diff --git a/Lamdu/Builtins/PrimVal.hs b/Lamdu/Builtins/PrimVal.hs index d87cac054..061129f64 100644 --- a/Lamdu/Builtins/PrimVal.hs +++ b/Lamdu/Builtins/PrimVal.hs @@ -9,9 +9,9 @@ module Lamdu.Builtins.PrimVal import Data.Binary.Utils (encodeS, decodeS) import Data.ByteString (ByteString) import Lamdu.Builtins.Anchors (bytesTid, floatTid) -import Lamdu.Expr.Type (Type) -import qualified Lamdu.Expr.Type as T -import qualified Lamdu.Expr.Val as V +import Lamdu.Calc.Type (Type) +import qualified Lamdu.Calc.Type as T +import qualified Lamdu.Calc.Val as V data KnownPrim = Float Double diff --git a/Lamdu/Compiler/Flatten.hs b/Lamdu/Compiler/Flatten.hs index 6bafe687e..2c68a9303 100644 --- a/Lamdu/Compiler/Flatten.hs +++ b/Lamdu/Compiler/Flatten.hs @@ -9,9 +9,9 @@ module Lamdu.Compiler.Flatten import qualified Control.Lens as Lens import Control.Lens.Operators import Data.Map (Map) -import qualified Lamdu.Expr.Type as T -import Lamdu.Expr.Val.Annotated (Val(..)) -import qualified Lamdu.Expr.Val as V +import qualified Lamdu.Calc.Type as T +import Lamdu.Calc.Val.Annotated (Val(..)) +import qualified Lamdu.Calc.Val as V import Prelude.Compat diff --git a/Lamdu/Data/Anchors.hs b/Lamdu/Data/Anchors.hs index b2a654518..3a2f71c9b 100644 --- a/Lamdu/Data/Anchors.hs +++ b/Lamdu/Data/Anchors.hs @@ -25,9 +25,9 @@ import Data.Store.Transaction (MkProperty(..)) import qualified Data.Store.Transaction as Transaction import GHC.Generics (Generic) import qualified Graphics.UI.Bottle.WidgetId as WidgetId +import qualified Lamdu.Calc.Type as T import Lamdu.Eval.Results (ScopeId) import Lamdu.Expr.IRef (DefI, ValI) -import qualified Lamdu.Expr.Type as T import qualified Lamdu.Expr.UniqueId as UniqueId type Pane m = DefI m diff --git a/Lamdu/Data/Definition.hs b/Lamdu/Data/Definition.hs index 59edcc6cc..da6a83776 100644 --- a/Lamdu/Data/Definition.hs +++ b/Lamdu/Data/Definition.hs @@ -12,8 +12,8 @@ import qualified Control.Lens as Lens import Data.Binary (Binary(..)) import Data.Map (Map) import GHC.Generics (Generic) -import Lamdu.Expr.Scheme (Scheme) -import Lamdu.Expr.Val (Var) +import Lamdu.Calc.Type.Scheme (Scheme) +import Lamdu.Calc.Val (Var) import Prelude.Compat diff --git a/Lamdu/Data/Export/Codejam.hs b/Lamdu/Data/Export/Codejam.hs index f0ec21f5b..379783edf 100644 --- a/Lamdu/Data/Export/Codejam.hs +++ b/Lamdu/Data/Export/Codejam.hs @@ -22,6 +22,9 @@ import Data.Time.Clock.POSIX (getPOSIXTime) import qualified Foreign as F import qualified Graphics.Rendering.OpenGL as GL import qualified Lamdu.Builtins.PrimVal as PrimVal +import qualified Lamdu.Calc.Val as V +import Lamdu.Calc.Val.Annotated (Val) +import qualified Lamdu.Calc.Val.Annotated as Val import qualified Lamdu.Data.Anchors as Anchors import Lamdu.Data.DbLayout (ViewM) import qualified Lamdu.Data.DbLayout as DbLayout @@ -32,9 +35,6 @@ import Lamdu.Eval.Results (EvalResults) import qualified Lamdu.Eval.Results as EV import Lamdu.Expr.IRef (ValI) import qualified Lamdu.Expr.IRef as ExprIRef -import qualified Lamdu.Expr.Val as V -import Lamdu.Expr.Val.Annotated (Val) -import qualified Lamdu.Expr.Val.Annotated as Val import Prelude.Compat diff --git a/Lamdu/Data/Export/JSON.hs b/Lamdu/Data/Export/JSON.hs index f7b9a7aa7..9596d660c 100644 --- a/Lamdu/Data/Export/JSON.hs +++ b/Lamdu/Data/Export/JSON.hs @@ -33,6 +33,10 @@ import qualified Data.Store.Property as Property import Data.Store.Transaction (Transaction) import qualified Data.Store.Transaction as Transaction import Data.UUID.Types (UUID) +import qualified Lamdu.Calc.Type as T +import Lamdu.Calc.Type.Nominal (Nominal) +import qualified Lamdu.Calc.Val as V +import Lamdu.Calc.Val.Annotated (Val(..)) import qualified Lamdu.Data.Anchors as Anchors import Lamdu.Data.DbLayout (ViewM) import qualified Lamdu.Data.DbLayout as DbLayout @@ -43,11 +47,7 @@ import Lamdu.Expr.IRef (ValI) import qualified Lamdu.Expr.IRef as ExprIRef import qualified Lamdu.Expr.Lens as ExprLens import qualified Lamdu.Expr.Load as Load -import Lamdu.Expr.Nominal (Nominal) -import qualified Lamdu.Expr.Type as T import Lamdu.Expr.UniqueId (ToUUID) -import qualified Lamdu.Expr.Val as V -import Lamdu.Expr.Val.Annotated (Val(..)) import Prelude.Compat diff --git a/Lamdu/Data/Export/JSON/Codec.hs b/Lamdu/Data/Export/JSON/Codec.hs index 006bd6b55..4e0c6fe5b 100644 --- a/Lamdu/Data/Export/JSON/Codec.hs +++ b/Lamdu/Data/Export/JSON/Codec.hs @@ -38,20 +38,20 @@ import Data.Text (Text) import Data.UUID.Aeson () import Data.UUID.Types (UUID) import qualified Data.Vector as Vector +import Lamdu.Calc.Identifier (Identifier, identHex, identFromHex) +import Lamdu.Calc.Type (Type, Composite) +import qualified Lamdu.Calc.Type as T +import Lamdu.Calc.Type.Constraints (Constraints(..), CompositeVarConstraints(..)) +import Lamdu.Calc.Type.FlatComposite (FlatComposite(..)) +import qualified Lamdu.Calc.Type.FlatComposite as FlatComposite +import Lamdu.Calc.Type.Nominal (Nominal(..), NominalType(..)) +import Lamdu.Calc.Type.Scheme (Scheme(..)) +import Lamdu.Calc.Type.Vars (TypeVars(..)) +import Lamdu.Calc.Val.Annotated (Val(..)) +import qualified Lamdu.Calc.Val as V import qualified Lamdu.Data.Anchors as Anchors import Lamdu.Data.Definition (Definition(..)) import qualified Lamdu.Data.Definition as Definition -import Lamdu.Expr.Constraints (Constraints(..), CompositeVarConstraints(..)) -import Lamdu.Expr.FlatComposite (FlatComposite(..)) -import qualified Lamdu.Expr.FlatComposite as FlatComposite -import Lamdu.Expr.Identifier (Identifier, identHex, identFromHex) -import Lamdu.Expr.Nominal (Nominal(..), NominalType(..)) -import Lamdu.Expr.Scheme (Scheme(..)) -import Lamdu.Expr.Type (Type, Composite) -import qualified Lamdu.Expr.Type as T -import Lamdu.Expr.TypeVars (TypeVars(..)) -import Lamdu.Expr.Val.Annotated (Val(..)) -import qualified Lamdu.Expr.Val as V import Prelude.Compat diff --git a/Lamdu/Data/Ops.hs b/Lamdu/Data/Ops.hs index 9d672b9cd..2a2e835b6 100644 --- a/Lamdu/Data/Ops.hs +++ b/Lamdu/Data/Ops.hs @@ -24,6 +24,8 @@ import Data.Store.Transaction (Transaction, getP, setP, modP) import qualified Data.Store.Transaction as Transaction import qualified Graphics.UI.Bottle.WidgetId as WidgetId import qualified Lamdu.Builtins.Anchors as Builtins +import qualified Lamdu.Calc.Type as T +import qualified Lamdu.Calc.Val as V import Lamdu.CharClassification (operatorChars) import Lamdu.Data.Anchors (PresentationMode(..)) import qualified Lamdu.Data.Anchors as Anchors @@ -31,8 +33,6 @@ import qualified Lamdu.Data.Definition as Definition import qualified Lamdu.Expr.GenIds as GenIds import Lamdu.Expr.IRef (DefI, ValIProperty, ValI, ValTree(..)) import qualified Lamdu.Expr.IRef as ExprIRef -import qualified Lamdu.Expr.Type as T -import qualified Lamdu.Expr.Val as V import qualified System.Random.Utils as RandomUtils import Prelude.Compat diff --git a/Lamdu/Data/Ops/Subexprs.hs b/Lamdu/Data/Ops/Subexprs.hs index 8c23808fc..17eb26ba7 100644 --- a/Lamdu/Data/Ops/Subexprs.hs +++ b/Lamdu/Data/Ops/Subexprs.hs @@ -11,11 +11,11 @@ module Lamdu.Data.Ops.Subexprs import qualified Control.Lens as Lens import Control.Monad (void) import Data.Store.Transaction (Transaction) +import qualified Lamdu.Calc.Val as V +import Lamdu.Calc.Val.Annotated (Val(..)) import qualified Lamdu.Data.Ops as DataOps import Lamdu.Expr.IRef (ValIProperty) import qualified Lamdu.Expr.Lens as ExprLens -import qualified Lamdu.Expr.Val as V -import Lamdu.Expr.Val.Annotated (Val(..)) type T = Transaction diff --git a/Lamdu/Eval/JS.hs b/Lamdu/Eval/JS.hs index e1b412b1f..aac58f56c 100644 --- a/Lamdu/Eval/JS.hs +++ b/Lamdu/Eval/JS.hs @@ -37,15 +37,15 @@ import qualified Data.UUID.Utils as UUIDUtils import qualified Data.Vector as Vec import Data.Word (Word8) import qualified Lamdu.Builtins.PrimVal as PrimVal +import Lamdu.Calc.Identifier (Identifier(..)) +import Lamdu.Calc.Type (Tag(..)) +import qualified Lamdu.Calc.Val as V +import Lamdu.Calc.Val.Annotated (Val) import qualified Lamdu.Data.Definition as Def import qualified Lamdu.DataFile as DataFile import qualified Lamdu.Eval.JS.Compiler as Compiler import Lamdu.Eval.Results (ScopeId(..), EvalResults(..)) import qualified Lamdu.Eval.Results as ER -import Lamdu.Expr.Identifier (Identifier(..)) -import Lamdu.Expr.Type (Tag(..)) -import qualified Lamdu.Expr.Val as V -import Lamdu.Expr.Val.Annotated (Val) import Numeric (readHex) import System.FilePath (splitFileName) import System.IO (IOMode(..), Handle, hClose, hIsEOF, hPutStrLn, withFile) diff --git a/Lamdu/Eval/JS/Compiler.hs b/Lamdu/Eval/JS/Compiler.hs index 720e630a6..cad4af348 100644 --- a/Lamdu/Eval/JS/Compiler.hs +++ b/Lamdu/Eval/JS/Compiler.hs @@ -28,15 +28,15 @@ import Data.UUID.Types (UUID) import qualified Data.UUID.Utils as UUIDUtils import qualified Lamdu.Builtins.Anchors as Builtins import qualified Lamdu.Builtins.PrimVal as PrimVal +import Lamdu.Calc.Identifier (identHex) +import qualified Lamdu.Calc.Type as T +import qualified Lamdu.Calc.Val as V +import Lamdu.Calc.Val.Annotated (Val(..)) +import qualified Lamdu.Calc.Val.Annotated as Val import qualified Lamdu.Compiler.Flatten as Flatten import qualified Lamdu.Data.Definition as Definition -import Lamdu.Expr.Identifier (identHex) import qualified Lamdu.Expr.Lens as ExprLens -import qualified Lamdu.Expr.Type as T import qualified Lamdu.Expr.UniqueId as UniqueId -import qualified Lamdu.Expr.Val as V -import Lamdu.Expr.Val.Annotated (Val(..)) -import qualified Lamdu.Expr.Val.Annotated as Val import qualified Language.ECMAScript3.PrettyPrint as JSPP import qualified Language.ECMAScript3.Syntax as JSS import qualified Language.ECMAScript3.Syntax.CodeGen as JS diff --git a/Lamdu/Eval/Manager.hs b/Lamdu/Eval/Manager.hs index cc2f355ee..fa23550f9 100644 --- a/Lamdu/Eval/Manager.hs +++ b/Lamdu/Eval/Manager.hs @@ -29,6 +29,7 @@ import qualified Data.Store.Rev.Version as Version import Data.Store.Transaction (Transaction) import qualified Data.Store.Transaction as Transaction import Data.UUID.Types (UUID) +import Lamdu.Calc.Val.Annotated (Val) import qualified Lamdu.Data.Anchors as Anchors import Lamdu.Data.DbLayout (DbM, ViewM) import qualified Lamdu.Data.DbLayout as DbLayout @@ -39,7 +40,6 @@ import qualified Lamdu.Eval.Results as EvalResults import Lamdu.Expr.IRef (DefI, ValI) import qualified Lamdu.Expr.IRef as ExprIRef import qualified Lamdu.Expr.Load as Load -import Lamdu.Expr.Val.Annotated (Val) import Lamdu.VersionControl (getVersion) import qualified Lamdu.VersionControl as VersionControl diff --git a/Lamdu/Eval/Results.hs b/Lamdu/Eval/Results.hs index 7532aa7c8..27eb0153f 100644 --- a/Lamdu/Eval/Results.hs +++ b/Lamdu/Eval/Results.hs @@ -15,8 +15,8 @@ import Data.Binary (Binary) import Data.Map (Map) import qualified Data.Map as Map import Lamdu.Data.Definition (FFIName) -import qualified Lamdu.Expr.Type as T -import qualified Lamdu.Expr.Val as V +import qualified Lamdu.Calc.Type as T +import qualified Lamdu.Calc.Val as V import Prelude.Compat diff --git a/Lamdu/Eval/Results/Process.hs b/Lamdu/Eval/Results/Process.hs index b63e7c07f..a73f13f21 100644 --- a/Lamdu/Eval/Results/Process.hs +++ b/Lamdu/Eval/Results/Process.hs @@ -9,21 +9,21 @@ import Data.Map (Map) import qualified Data.Map as Map import Data.Maybe (fromMaybe) import qualified Lamdu.Builtins.Anchors as Builtins +import qualified Lamdu.Calc.Type as T +import qualified Lamdu.Calc.Type.FlatComposite as FlatComposite +import qualified Lamdu.Calc.Type.Nominal as N +import Lamdu.Calc.Type.Scheme (schemeType) +import qualified Lamdu.Calc.Val as V import Lamdu.Eval.Results (Val(..), Body(..)) import qualified Lamdu.Eval.Results as ER -import qualified Lamdu.Expr.FlatComposite as FlatComposite -import qualified Lamdu.Expr.Lens as ExprLens -import qualified Lamdu.Expr.Nominal as N -import Lamdu.Expr.Scheme (schemeType) -import qualified Lamdu.Expr.Type as T -import qualified Lamdu.Expr.Val as V +import Lamdu.Infer (applyNominal) import Prelude.Compat extractRecordTypeField :: T.Tag -> T.Type -> Maybe (T.Type, T.Type) extractRecordTypeField tag typ = do - comp <- typ ^? ExprLens._TRecord + comp <- typ ^? T._TRecord let flat = FlatComposite.fromComposite comp fieldType <- flat ^. FlatComposite.fields . Lens.at tag Just @@ -36,7 +36,7 @@ extractRecordTypeField tag typ = extractSumTypeField :: T.Tag -> T.Type -> Maybe T.Type extractSumTypeField tag typ = do - comp <- typ ^? ExprLens._TSum + comp <- typ ^? T._TSum FlatComposite.fromComposite comp ^. FlatComposite.fields . Lens.at tag type AddTypes val res = (T.Type -> val -> res) -> T.Type -> Body res @@ -74,7 +74,7 @@ addTypesInject (V.Inject tag val) go typ = addTypesArray :: [val] -> AddTypes val res addTypesArray items go typ = do - (_nomId, params) <- typ ^? ExprLens._TInst + (_nomId, params) <- typ ^? T._TInst paramType <- params ^. Lens.at Builtins.valTypeParamId items <&> go paramType & RArray & Just & fromMaybe (ER.EvalTypeError "addTypes bad type for RArray" & RError) @@ -100,7 +100,7 @@ unwrapTInsts nomsMap typ = T.TInst tid params -> Map.lookup tid nomsMap & fromMaybe (error "addTypes: nominal missing from map") - & N.apply params + & applyNominal params & \case N.OpaqueNominal -> typ N.NominalType scheme -> scheme ^. schemeType & unwrapTInsts nomsMap diff --git a/Lamdu/Expr/GenIds.hs b/Lamdu/Expr/GenIds.hs index 7bcb69864..8d62df42c 100644 --- a/Lamdu/Expr/GenIds.hs +++ b/Lamdu/Expr/GenIds.hs @@ -28,10 +28,10 @@ import qualified Data.Map as Map import Data.Maybe (fromMaybe) import Data.Store.Transaction (Transaction) import qualified Data.Store.Transaction as Transaction -import Lamdu.Expr.Identifier (Identifier(..)) -import qualified Lamdu.Expr.Type as T -import Lamdu.Expr.Val.Annotated (Val(..)) -import qualified Lamdu.Expr.Val as V +import Lamdu.Calc.Identifier (Identifier(..)) +import qualified Lamdu.Calc.Type as T +import qualified Lamdu.Calc.Val as V +import Lamdu.Calc.Val.Annotated (Val(..)) import System.Random (Random, RandomGen, random) import qualified System.Random as Random import qualified System.Random.Utils as RandomUtils diff --git a/Lamdu/Expr/IRef.hs b/Lamdu/Expr/IRef.hs index 395b56a0c..27bf04674 100644 --- a/Lamdu/Expr/IRef.hs +++ b/Lamdu/Expr/IRef.hs @@ -29,12 +29,12 @@ import Data.Store.Transaction (Transaction) import qualified Data.Store.Transaction as Transaction import qualified Data.UUID.Utils as UUIDUtils import qualified Lamdu.Data.Definition as Definition -import Lamdu.Expr.Identifier (Identifier(..)) -import Lamdu.Expr.Nominal (Nominal) -import qualified Lamdu.Expr.Type as T -import qualified Lamdu.Expr.Val as V -import Lamdu.Expr.Val.Annotated (Val(..)) -import qualified Lamdu.Expr.Val.Annotated as Val +import Lamdu.Calc.Identifier (Identifier(..)) +import qualified Lamdu.Calc.Type as T +import Lamdu.Calc.Type.Nominal (Nominal) +import qualified Lamdu.Calc.Val as V +import Lamdu.Calc.Val.Annotated (Val(..)) +import qualified Lamdu.Calc.Val.Annotated as Val import Prelude.Compat diff --git a/Lamdu/Expr/IRef/Infer.hs b/Lamdu/Expr/IRef/Infer.hs index aad01e550..c301fe6a4 100644 --- a/Lamdu/Expr/IRef/Infer.hs +++ b/Lamdu/Expr/IRef/Infer.hs @@ -17,13 +17,13 @@ import Control.Monad.Trans.Either (EitherT(..), hoistEither) import Control.Monad.Trans.State (StateT(..), mapStateT) import Data.Store.Transaction (Transaction) import qualified Data.Store.Transaction as Transaction +import Lamdu.Calc.Type.Scheme (Scheme(..)) +import qualified Lamdu.Calc.Type.Scheme as Scheme +import Lamdu.Calc.Val.Annotated (Val(..)) +import qualified Lamdu.Calc.Val.Annotated as Val import qualified Lamdu.Data.Definition as Definition import qualified Lamdu.Expr.IRef as ExprIRef import qualified Lamdu.Expr.Load as Load -import Lamdu.Expr.Scheme (Scheme(..)) -import qualified Lamdu.Expr.Scheme as Scheme -import Lamdu.Expr.Val.Annotated (Val(..)) -import qualified Lamdu.Expr.Val.Annotated as Val import Lamdu.Infer (Infer) import qualified Lamdu.Infer as Infer import qualified Lamdu.Infer.Error as InferErr diff --git a/Lamdu/Expr/Load.hs b/Lamdu/Expr/Load.hs index 905b8b18e..63fa9b10e 100644 --- a/Lamdu/Expr/Load.hs +++ b/Lamdu/Expr/Load.hs @@ -9,13 +9,13 @@ import Control.Lens.Operators import Data.Store.Property (Property(..)) import Data.Store.Transaction (Transaction) import qualified Data.Store.Transaction as Transaction +import qualified Lamdu.Calc.Type as T +import Lamdu.Calc.Type.Nominal (Nominal) +import Lamdu.Calc.Val.Annotated (Val(..)) import Lamdu.Data.Definition (Definition(..)) import qualified Lamdu.Data.Definition as Definition import Lamdu.Expr.IRef (DefI, ValI, ValIProperty) import qualified Lamdu.Expr.IRef as ExprIRef -import Lamdu.Expr.Nominal (Nominal) -import qualified Lamdu.Expr.Type as T -import Lamdu.Expr.Val.Annotated (Val(..)) type T = Transaction diff --git a/Lamdu/Expr/RecordVal.hs b/Lamdu/Expr/RecordVal.hs index 0fbce89df..7b5a80762 100644 --- a/Lamdu/Expr/RecordVal.hs +++ b/Lamdu/Expr/RecordVal.hs @@ -6,9 +6,9 @@ import Control.Lens.Operators import Control.Lens.Tuple import Data.Map (Map) import qualified Data.Map as Map -import qualified Lamdu.Expr.Type as T -import Lamdu.Expr.Val.Annotated (Val(..)) -import qualified Lamdu.Expr.Val as V +import qualified Lamdu.Calc.Type as T +import Lamdu.Calc.Val.Annotated (Val(..)) +import qualified Lamdu.Calc.Val as V unpack :: Val a -> (Map T.Tag (a, Val a), Val a) unpack (Val pl (V.BRecExtend (V.RecExtend tag val rest))) = diff --git a/Lamdu/Expr/UniqueId.hs b/Lamdu/Expr/UniqueId.hs index 7bf146843..2991c56cf 100644 --- a/Lamdu/Expr/UniqueId.hs +++ b/Lamdu/Expr/UniqueId.hs @@ -9,11 +9,11 @@ import Data.Store.Transaction (Transaction) import qualified Data.Store.Transaction as Transaction import Data.UUID.Types (UUID) import qualified Data.UUID.Utils as UUIDUtils +import Lamdu.Calc.Identifier (Identifier(..)) +import qualified Lamdu.Calc.Type as T +import qualified Lamdu.Calc.Val as V import Lamdu.Expr.IRef (ValI(..)) import qualified Lamdu.Expr.IRef as ExprIRef -import Lamdu.Expr.Identifier (Identifier(..)) -import qualified Lamdu.Expr.Type as T -import qualified Lamdu.Expr.Val as V import Prelude.Compat diff --git a/Lamdu/GUI/DefinitionEdit.hs b/Lamdu/GUI/DefinitionEdit.hs index 86b94056b..b7fb5e600 100644 --- a/Lamdu/GUI/DefinitionEdit.hs +++ b/Lamdu/GUI/DefinitionEdit.hs @@ -15,9 +15,9 @@ import Graphics.UI.Bottle.View (View(..)) import Graphics.UI.Bottle.Widget (Widget) import qualified Graphics.UI.Bottle.Widget as Widget import qualified Graphics.UI.Bottle.Widgets as BWidgets +import Lamdu.Calc.Type.Scheme (Scheme(..), schemeType) import qualified Lamdu.Config as Config import qualified Lamdu.Data.Definition as Definition -import Lamdu.Expr.Scheme (Scheme(..), schemeType) import qualified Lamdu.GUI.ExpressionEdit.BinderEdit as BinderEdit import qualified Lamdu.GUI.ExpressionEdit.BuiltinEdit as BuiltinEdit import Lamdu.GUI.ExpressionGui (ExpressionGui) diff --git a/Lamdu/GUI/EvalView.hs b/Lamdu/GUI/EvalView.hs index 11fee97ab..961b1cf13 100644 --- a/Lamdu/GUI/EvalView.hs +++ b/Lamdu/GUI/EvalView.hs @@ -21,12 +21,12 @@ import qualified Graphics.UI.Bottle.Widgets.GridView as GridView import qualified Graphics.UI.Bottle.Widgets.Spacer as Spacer import qualified Lamdu.Builtins.Anchors as Builtins import qualified Lamdu.Builtins.PrimVal as PrimVal +import Lamdu.Calc.Type (Type) +import qualified Lamdu.Calc.Type as T +import qualified Lamdu.Calc.Val as V import qualified Lamdu.Config as Config import qualified Lamdu.Data.Anchors as Anchors import Lamdu.Eval.Results (EvalError(..), Val(..), Body(..)) -import Lamdu.Expr.Type (Type) -import qualified Lamdu.Expr.Type as T -import qualified Lamdu.Expr.Val as V import Lamdu.Formatting (Format(..)) import Lamdu.GUI.ExpressionGui.Monad (ExprGuiM) import qualified Lamdu.GUI.ExpressionGui.Monad as ExprGuiM diff --git a/Lamdu/GUI/ExpressionEdit/CaseEdit.hs b/Lamdu/GUI/ExpressionEdit/CaseEdit.hs index f65be69e6..edb935abc 100644 --- a/Lamdu/GUI/ExpressionEdit/CaseEdit.hs +++ b/Lamdu/GUI/ExpressionEdit/CaseEdit.hs @@ -16,11 +16,11 @@ import qualified Graphics.UI.Bottle.Animation as Anim import qualified Graphics.UI.Bottle.EventMap as E import Graphics.UI.Bottle.View (View(..)) import qualified Graphics.UI.Bottle.Widget as Widget +import Lamdu.Calc.Type (Tag) +import qualified Lamdu.Calc.Val as V import Lamdu.Config (Config) import qualified Lamdu.Config as Config import qualified Lamdu.Eval.Results as ER -import Lamdu.Expr.Type (Tag) -import qualified Lamdu.Expr.Val as V import qualified Lamdu.GUI.ExpressionEdit.EventMap as ExprEventMap import qualified Lamdu.GUI.ExpressionEdit.TagEdit as TagEdit import Lamdu.GUI.ExpressionGui (ExpressionGui) diff --git a/Lamdu/GUI/ExpressionEdit/HoleEdit/Info.hs b/Lamdu/GUI/ExpressionEdit/HoleEdit/Info.hs index 9ffd937b1..7236ad169 100644 --- a/Lamdu/GUI/ExpressionEdit/HoleEdit/Info.hs +++ b/Lamdu/GUI/ExpressionEdit/HoleEdit/Info.hs @@ -8,7 +8,7 @@ import Control.Lens.Operators import Data.Store.Property (Property(..)) import qualified Data.Store.Property as Property import qualified Data.Store.Transaction as Transaction -import Lamdu.Expr.Type (Type) +import Lamdu.Calc.Type (Type) import Lamdu.GUI.ExpressionEdit.HoleEdit.State (HoleState, hsSearchTerm) import Lamdu.GUI.ExpressionEdit.HoleEdit.WidgetIds (WidgetIds) import qualified Lamdu.GUI.ExpressionGui.Types as ExprGuiT diff --git a/Lamdu/GUI/ExpressionGui.hs b/Lamdu/GUI/ExpressionGui.hs index 9688b1262..fcc54f911 100644 --- a/Lamdu/GUI/ExpressionGui.hs +++ b/Lamdu/GUI/ExpressionGui.hs @@ -65,11 +65,11 @@ import qualified Graphics.UI.Bottle.Widgets.Spacer as Spacer import qualified Graphics.UI.Bottle.Widgets.TextEdit as TextEdit import qualified Graphics.UI.Bottle.WidgetsEnvT as WE import qualified Graphics.UI.GLFW as GLFW +import Lamdu.Calc.Type (Type) +import qualified Lamdu.Calc.Type as T import Lamdu.Config (Config) import qualified Lamdu.Config as Config import qualified Lamdu.Eval.Results as ER -import Lamdu.Expr.Type (Type) -import qualified Lamdu.Expr.Type as T import qualified Lamdu.GUI.CodeEdit.Settings as CESettings import qualified Lamdu.GUI.EvalView as EvalView import qualified Lamdu.GUI.ExpressionEdit.EventMap as ExprEventMap diff --git a/Lamdu/GUI/TypeView.hs b/Lamdu/GUI/TypeView.hs index 44e535e10..5bd4dfe96 100644 --- a/Lamdu/GUI/TypeView.hs +++ b/Lamdu/GUI/TypeView.hs @@ -26,11 +26,11 @@ import qualified Graphics.UI.Bottle.Widgets as BWidgets import qualified Graphics.UI.Bottle.Widgets.GridView as GridView import qualified Graphics.UI.Bottle.Widgets.Spacer as Spacer import Graphics.UI.Bottle.WidgetsEnvT (WidgetEnvT) +import Lamdu.Calc.Identifier (Identifier(..)) +import Lamdu.Calc.Type (Type) +import qualified Lamdu.Calc.Type as T import qualified Lamdu.Config as Config import qualified Lamdu.Data.Anchors as Anchors -import Lamdu.Expr.Identifier (Identifier(..)) -import Lamdu.Expr.Type (Type) -import qualified Lamdu.Expr.Type as T import Lamdu.GUI.ExpressionGui.Monad (ExprGuiM) import qualified Lamdu.GUI.ExpressionGui.Monad as ExprGuiM import Lamdu.GUI.Precedence (ParentPrecedence(..), MyPrecedence(..), needParens) diff --git a/Lamdu/Sugar/Convert.hs b/Lamdu/Sugar/Convert.hs index 5c85f0756..db7742a87 100644 --- a/Lamdu/Sugar/Convert.hs +++ b/Lamdu/Sugar/Convert.hs @@ -18,6 +18,11 @@ import qualified Data.Store.Property as Property import Data.Store.Transaction (Transaction) import qualified Data.Store.Transaction as Transaction import Data.UUID.Types (UUID) +import qualified Lamdu.Calc.Type as T +import qualified Lamdu.Calc.Type.Nominal as N +import Lamdu.Calc.Type.Scheme (schemeType) +import Lamdu.Calc.Val.Annotated (Val(..)) +import qualified Lamdu.Calc.Val.Annotated as Val import qualified Lamdu.Data.Anchors as Anchors import qualified Lamdu.Data.Definition as Definition import Lamdu.Eval.Results (EvalResults, erExprValues, erAppliesOfLam) @@ -27,12 +32,7 @@ import qualified Lamdu.Expr.IRef as ExprIRef import qualified Lamdu.Expr.IRef.Infer as IRefInfer import qualified Lamdu.Expr.Lens as ExprLens import qualified Lamdu.Expr.Load as Load -import qualified Lamdu.Expr.Nominal as N -import Lamdu.Expr.Scheme (schemeType) -import qualified Lamdu.Expr.Type as T import qualified Lamdu.Expr.UniqueId as UniqueId -import Lamdu.Expr.Val.Annotated (Val(..)) -import qualified Lamdu.Expr.Val.Annotated as Val import qualified Lamdu.Infer as Infer import qualified Lamdu.Sugar.Convert.DefExpr as ConvertDefExpr import qualified Lamdu.Sugar.Convert.Expression as ConvertExpr @@ -167,7 +167,7 @@ makeNominalsMap val = do nom <- Load.nominal tid & lift Map.insert tid nom loaded & State.put - N.nType nom ^.. N._NominalType . schemeType & traverse_ loadForType + nom ^.. N.nomType . N._NominalType . schemeType & traverse_ loadForType convertInferDefExpr :: Monad m => diff --git a/Lamdu/Sugar/Convert/Apply.hs b/Lamdu/Sugar/Convert/Apply.hs index 2a17cf897..ff357ebb0 100644 --- a/Lamdu/Sugar/Convert/Apply.hs +++ b/Lamdu/Sugar/Convert/Apply.hs @@ -20,17 +20,17 @@ import qualified Data.Store.Property as Property import Data.Store.Transaction (Transaction) import Data.UUID.Types (UUID) import qualified Lamdu.Builtins.Anchors as Builtins +import Lamdu.Calc.Type (Type) +import qualified Lamdu.Calc.Val as V +import Lamdu.Calc.Val.Annotated (Val(..)) +import qualified Lamdu.Calc.Val.Annotated as Val import qualified Lamdu.Data.Ops as DataOps import qualified Lamdu.Expr.IRef as ExprIRef import qualified Lamdu.Expr.Lens as ExprLens import qualified Lamdu.Expr.Load as Load import qualified Lamdu.Expr.Pure as P import qualified Lamdu.Expr.RecordVal as RecordVal -import Lamdu.Expr.Type (Type) import qualified Lamdu.Expr.UniqueId as UniqueId -import qualified Lamdu.Expr.Val as V -import Lamdu.Expr.Val.Annotated (Val(..)) -import qualified Lamdu.Expr.Val.Annotated as Val import qualified Lamdu.Infer as Infer import Lamdu.Infer.Unify (unify) import Lamdu.Sugar.Convert.Expression.Actions (addActions) diff --git a/Lamdu/Sugar/Convert/Binder.hs b/Lamdu/Sugar/Convert/Binder.hs index 28e092b90..9a4878371 100644 --- a/Lamdu/Sugar/Convert/Binder.hs +++ b/Lamdu/Sugar/Convert/Binder.hs @@ -14,15 +14,15 @@ import qualified Data.Store.IRef as IRef import qualified Data.Store.Property as Property import Data.Store.Transaction (MkProperty) import Data.UUID.Types (UUID) +import qualified Lamdu.Calc.Val as V +import Lamdu.Calc.Val.Annotated (Val(..)) +import qualified Lamdu.Calc.Val.Annotated as Val import qualified Lamdu.Data.Anchors as Anchors import qualified Lamdu.Data.Ops as DataOps import qualified Lamdu.Data.Ops.Subexprs as SubExprs import Lamdu.Expr.IRef (DefI, ValIProperty) import qualified Lamdu.Expr.Lens as ExprLens import qualified Lamdu.Expr.UniqueId as UniqueId -import qualified Lamdu.Expr.Val as V -import Lamdu.Expr.Val.Annotated (Val(..)) -import qualified Lamdu.Expr.Val.Annotated as Val import Lamdu.Sugar.Convert.Binder.Float (makeFloatLetToOuterScope) import Lamdu.Sugar.Convert.Binder.Inline (inlineLet) import Lamdu.Sugar.Convert.Binder.Params (ConventionalParams(..), cpParams, convertParams, convertLamParams, mkStoredLam, makeDeleteLambda) diff --git a/Lamdu/Sugar/Convert/Binder/Float.hs b/Lamdu/Sugar/Convert/Binder/Float.hs index a1aa65d7b..08733a47f 100644 --- a/Lamdu/Sugar/Convert/Binder/Float.hs +++ b/Lamdu/Sugar/Convert/Binder/Float.hs @@ -9,15 +9,15 @@ import Control.Lens.Operators import qualified Data.Set as Set import qualified Data.Store.Property as Property import Data.Store.Transaction (Transaction) +import qualified Lamdu.Calc.Type as T +import qualified Lamdu.Calc.Val as V +import Lamdu.Calc.Val.Annotated (Val(..)) +import qualified Lamdu.Calc.Val.Annotated as Val import qualified Lamdu.Data.Ops as DataOps import qualified Lamdu.Data.Ops.Subexprs as SubExprs import Lamdu.Expr.IRef (ValI, ValIProperty) import qualified Lamdu.Expr.IRef as ExprIRef import qualified Lamdu.Expr.Lens as ExprLens -import qualified Lamdu.Expr.Type as T -import qualified Lamdu.Expr.Val as V -import Lamdu.Expr.Val.Annotated (Val(..)) -import qualified Lamdu.Expr.Val.Annotated as Val import qualified Lamdu.Sugar.Convert.Binder.Params as Params import Lamdu.Sugar.Convert.Binder.Redex (Redex(..)) import Lamdu.Sugar.Convert.Binder.Types (BinderKind(..)) @@ -171,7 +171,7 @@ floatLetToOuterScope topLevelProp redex ctx = (outerScopeInfo ^. ConvertM.osiVarsUnderPos) outerScopeInfo = ctx ^. ConvertM.scScopeInfo . ConvertM.siOuter usedVars = - redexArg redex ^.. ExprLens.valLeafs . ExprLens._LVar + redexArg redex ^.. ExprLens.valLeafs . V._LVar & Set.fromList makeFloatLetToOuterScope :: diff --git a/Lamdu/Sugar/Convert/Binder/Inline.hs b/Lamdu/Sugar/Convert/Binder/Inline.hs index 646f6bef7..5b0321043 100644 --- a/Lamdu/Sugar/Convert/Binder/Inline.hs +++ b/Lamdu/Sugar/Convert/Binder/Inline.hs @@ -9,11 +9,11 @@ import Control.Lens.Operators import Control.Lens.Tuple import qualified Data.Store.Property as Property import Data.Store.Transaction (Transaction) +import qualified Lamdu.Calc.Val as V +import Lamdu.Calc.Val.Annotated (Val(..)) +import qualified Lamdu.Calc.Val.Annotated as Val import Lamdu.Expr.IRef (ValIProperty, ValI) import qualified Lamdu.Expr.IRef as ExprIRef -import qualified Lamdu.Expr.Val as V -import Lamdu.Expr.Val.Annotated (Val(..)) -import qualified Lamdu.Expr.Val.Annotated as Val import Lamdu.Sugar.Convert.Binder.Redex (Redex(..)) import qualified Lamdu.Sugar.Internal.EntityId as EntityId import Lamdu.Sugar.Types diff --git a/Lamdu/Sugar/Convert/Binder/Params.hs b/Lamdu/Sugar/Convert/Binder/Params.hs index e77dc78e7..2de1be598 100644 --- a/Lamdu/Sugar/Convert/Binder/Params.hs +++ b/Lamdu/Sugar/Convert/Binder/Params.hs @@ -29,6 +29,11 @@ import qualified Data.Store.Property as Property import Data.Store.Transaction (Transaction, MkProperty) import qualified Data.Store.Transaction as Transaction import Data.UUID.Types (UUID) +import Lamdu.Calc.Type (Type) +import qualified Lamdu.Calc.Type as T +import qualified Lamdu.Calc.Val as V +import Lamdu.Calc.Val.Annotated (Val(..)) +import qualified Lamdu.Calc.Val.Annotated as Val import qualified Lamdu.Data.Anchors as Anchors import qualified Lamdu.Data.Ops as DataOps import qualified Lamdu.Data.Ops.Subexprs as SubExprs @@ -38,12 +43,7 @@ import qualified Lamdu.Expr.GenIds as GenIds import Lamdu.Expr.IRef (ValI, ValIProperty) import qualified Lamdu.Expr.IRef as ExprIRef import qualified Lamdu.Expr.Lens as ExprLens -import Lamdu.Expr.Type (Type) -import qualified Lamdu.Expr.Type as T import qualified Lamdu.Expr.UniqueId as UniqueId -import qualified Lamdu.Expr.Val as V -import Lamdu.Expr.Val.Annotated (Val(..)) -import qualified Lamdu.Expr.Val.Annotated as Val import Lamdu.Sugar.Convert.Binder.Types (BinderKind(..)) import qualified Lamdu.Sugar.Convert.Input as Input import Lamdu.Sugar.Convert.Monad (ConvertM) @@ -192,7 +192,7 @@ mkCpScopesOfLam x = <&> (fmap . map) BinderParamScopeId getFieldOnVar :: Lens.Traversal' (Val t) (V.Var, T.Tag) -getFieldOnVar = Val.body . ExprLens._BGetField . inGetField +getFieldOnVar = Val.body . V._BGetField . inGetField where inGetField f (V.GetField (Val pl (V.BLeaf (V.LVar v))) t) = f (v, t) <&> pack pl @@ -355,7 +355,7 @@ removeCallsToVar :: Monad m => V.Var -> Val (ValIProperty m) -> T m () removeCallsToVar funcVar val = do SubExprs.onMatchingSubexprs changeRecursion - ( Val.body . ExprLens._BApp . V.applyFunc . ExprLens.valVar + ( Val.body . V._BApp . V.applyFunc . ExprLens.valVar . Lens.only funcVar ) val wrapUnappliedUsesOfVar funcVar val @@ -445,7 +445,7 @@ convertToRecordParams mkNewArg binderKind storedLam newParamPosition = lamParamType :: Input.Payload m a -> Type lamParamType lamExprPl = unsafeUnjust "Lambda value not inferred to a function type?!" $ - lamExprPl ^? Input.inferredType . ExprLens._TFun . _1 + lamExprPl ^? Input.inferredType . T._TFun . _1 makeNonRecordParamActions :: Monad m => BinderKind m -> StoredLam m -> ConvertM m (FuncParamActions m) @@ -600,8 +600,8 @@ convertNonEmptyParams binderKind lambda lambdaPl = lambda ^.. V.lamResult . ExprLens.subExprs . Lens.filtered (Lens.has ExprLens.valAbs) . Val.payload - . Input.inferredType . ExprLens._TFun . _1 - . ExprLens._TRecord . ExprLens.compositeTags + . Input.inferredType . T._TFun . _1 + . T._TRecord . ExprLens.compositeTags & Set.fromList _ -> convertNonRecordParam binderKind lambda lambdaPl where diff --git a/Lamdu/Sugar/Convert/Binder/Redex.hs b/Lamdu/Sugar/Convert/Binder/Redex.hs index d19d4a427..9926a9b82 100644 --- a/Lamdu/Sugar/Convert/Binder/Redex.hs +++ b/Lamdu/Sugar/Convert/Binder/Redex.hs @@ -9,12 +9,12 @@ import qualified Control.Lens as Lens import Control.Lens.Operators import Data.CurAndPrev (CurAndPrev) import Data.Map (Map) +import Lamdu.Calc.Type (Type) +import qualified Lamdu.Calc.Val as V +import Lamdu.Calc.Val.Annotated (Val(..)) +import qualified Lamdu.Calc.Val.Annotated as Val import Lamdu.Eval.Results (ScopeId) import qualified Lamdu.Expr.Lens as ExprLens -import Lamdu.Expr.Type (Type) -import qualified Lamdu.Expr.Val as V -import Lamdu.Expr.Val.Annotated (Val(..)) -import qualified Lamdu.Expr.Val.Annotated as Val import qualified Lamdu.Infer as Infer import qualified Lamdu.Sugar.Convert.Input as Input import Lamdu.Sugar.Types @@ -33,7 +33,7 @@ data Redex a = Redex checkForRedex :: Val (Input.Payload m a) -> Maybe (Redex (Input.Payload m a)) checkForRedex expr = do V.Apply func arg <- expr ^? ExprLens.valApply - lam <- func ^? Val.body . ExprLens._BLam + lam <- func ^? Val.body . V._BLam Just Redex { redexLam = lam , redexBodyScope = diff --git a/Lamdu/Sugar/Convert/Binder/Types.hs b/Lamdu/Sugar/Convert/Binder/Types.hs index 08fec2912..753f09c69 100644 --- a/Lamdu/Sugar/Convert/Binder/Types.hs +++ b/Lamdu/Sugar/Convert/Binder/Types.hs @@ -2,9 +2,9 @@ module Lamdu.Sugar.Convert.Binder.Types ( BinderKind(..) ) where +import qualified Lamdu.Calc.Val as V +import Lamdu.Calc.Val.Annotated (Val) import Lamdu.Expr.IRef (DefI, ValIProperty) -import qualified Lamdu.Expr.Val as V -import Lamdu.Expr.Val.Annotated (Val) data BinderKind m = BinderKindDef (DefI m) -- TODO: Top-level defs to fix diff --git a/Lamdu/Sugar/Convert/Case.hs b/Lamdu/Sugar/Convert/Case.hs index 276cd7179..1b20ee22c 100644 --- a/Lamdu/Sugar/Convert/Case.hs +++ b/Lamdu/Sugar/Convert/Case.hs @@ -14,14 +14,14 @@ import qualified Data.Store.Property as Property import Data.Store.Transaction (Transaction) import qualified Data.Store.Transaction as Transaction import Data.UUID.Types (UUID) +import qualified Lamdu.Calc.Type as T +import qualified Lamdu.Calc.Val as V +import Lamdu.Calc.Val.Annotated (Val(..)) +import qualified Lamdu.Calc.Val.Annotated as Val import Lamdu.Data.Anchors (assocTagOrder) import qualified Lamdu.Data.Ops as DataOps import qualified Lamdu.Expr.IRef as ExprIRef -import qualified Lamdu.Expr.Type as T import qualified Lamdu.Expr.UniqueId as UniqueId -import qualified Lamdu.Expr.Val as V -import Lamdu.Expr.Val.Annotated (Val(..)) -import qualified Lamdu.Expr.Val.Annotated as Val import Lamdu.Sugar.Convert.Expression.Actions (addActions) import qualified Lamdu.Sugar.Convert.Input as Input import Lamdu.Sugar.Convert.Monad (ConvertM) diff --git a/Lamdu/Sugar/Convert/DefExpr.hs b/Lamdu/Sugar/Convert/DefExpr.hs index fc148d1de..a0a866ece 100644 --- a/Lamdu/Sugar/Convert/DefExpr.hs +++ b/Lamdu/Sugar/Convert/DefExpr.hs @@ -11,15 +11,15 @@ import qualified Data.Store.Property as Property import Data.Store.Transaction (Transaction) import qualified Data.Store.Transaction as Transaction import Data.UUID.Types (UUID) +import Lamdu.Calc.Type.Scheme (Scheme) +import qualified Lamdu.Calc.Type.Scheme as Scheme +import qualified Lamdu.Calc.Val as V +import Lamdu.Calc.Val.Annotated (Val(..)) +import qualified Lamdu.Calc.Val.Annotated as Val import qualified Lamdu.Data.Definition as Definition import Lamdu.Expr.IRef (DefI) import qualified Lamdu.Expr.IRef as ExprIRef import qualified Lamdu.Expr.Lens as ExprLens -import Lamdu.Expr.Scheme (Scheme) -import qualified Lamdu.Expr.Scheme as Scheme -import qualified Lamdu.Expr.Val as V -import Lamdu.Expr.Val.Annotated (Val(..)) -import qualified Lamdu.Expr.Val.Annotated as Val import qualified Lamdu.Infer as Infer import qualified Lamdu.Sugar.Convert.Binder as ConvertBinder import qualified Lamdu.Sugar.Convert.Input as Input diff --git a/Lamdu/Sugar/Convert/Expression.hs b/Lamdu/Sugar/Convert/Expression.hs index 87c6b1d12..2cc44c224 100644 --- a/Lamdu/Sugar/Convert/Expression.hs +++ b/Lamdu/Sugar/Convert/Expression.hs @@ -9,10 +9,10 @@ import Data.Store.Property (Property(..)) import qualified Data.Store.Property as Property import qualified Data.Store.Transaction as Transaction import qualified Lamdu.Builtins.PrimVal as PrimVal +import qualified Lamdu.Calc.Val as V +import Lamdu.Calc.Val.Annotated (Val(..)) +import qualified Lamdu.Calc.Val.Annotated as Val import qualified Lamdu.Expr.IRef as ExprIRef -import qualified Lamdu.Expr.Val as V -import Lamdu.Expr.Val.Annotated (Val(..)) -import qualified Lamdu.Expr.Val.Annotated as Val import qualified Lamdu.Sugar.Convert.Apply as ConvertApply import qualified Lamdu.Sugar.Convert.Binder as ConvertBinder import qualified Lamdu.Sugar.Convert.Case as ConvertCase diff --git a/Lamdu/Sugar/Convert/Expression/Actions.hs b/Lamdu/Sugar/Convert/Expression/Actions.hs index d31eeed4c..0dbe5199a 100644 --- a/Lamdu/Sugar/Convert/Expression/Actions.hs +++ b/Lamdu/Sugar/Convert/Expression/Actions.hs @@ -13,15 +13,15 @@ import Control.Monad (guard) import qualified Data.Map as Map import qualified Data.Store.Property as Property import Data.Store.Transaction (Transaction) +import qualified Lamdu.Calc.Val as V +import qualified Lamdu.Calc.Val.Annotated as Val +import Lamdu.Calc.Val.Annotated (Val) import qualified Lamdu.Data.Anchors as Anchors import qualified Lamdu.Data.Ops as DataOps import qualified Lamdu.Eval.Results.Process as ResultsProcess import qualified Lamdu.Expr.IRef as ExprIRef import qualified Lamdu.Expr.Lens as ExprLens import qualified Lamdu.Expr.UniqueId as UniqueId -import qualified Lamdu.Expr.Val as V -import qualified Lamdu.Expr.Val.Annotated as Val -import Lamdu.Expr.Val.Annotated (Val) import qualified Lamdu.Sugar.Convert.Input as Input import Lamdu.Sugar.Convert.Monad (ConvertM) import qualified Lamdu.Sugar.Convert.Monad as ConvertM diff --git a/Lamdu/Sugar/Convert/GetField.hs b/Lamdu/Sugar/Convert/GetField.hs index 1524af11a..767a765b8 100644 --- a/Lamdu/Sugar/Convert/GetField.hs +++ b/Lamdu/Sugar/Convert/GetField.hs @@ -6,10 +6,10 @@ module Lamdu.Sugar.Convert.GetField import qualified Control.Lens as Lens import Control.Lens.Operators import Control.Monad (guard) +import qualified Lamdu.Calc.Val as V +import Lamdu.Calc.Val.Annotated (Val(..)) import qualified Lamdu.Expr.Lens as ExprLens import qualified Lamdu.Expr.UniqueId as UniqueId -import qualified Lamdu.Expr.Val as V -import Lamdu.Expr.Val.Annotated (Val(..)) import Lamdu.Sugar.Convert.Expression.Actions (addActions, addActionsWithSetToInner) import qualified Lamdu.Sugar.Convert.Input as Input import Lamdu.Sugar.Convert.Monad (ConvertM) diff --git a/Lamdu/Sugar/Convert/GetVar.hs b/Lamdu/Sugar/Convert/GetVar.hs index efa0c0a28..7c550f7ac 100644 --- a/Lamdu/Sugar/Convert/GetVar.hs +++ b/Lamdu/Sugar/Convert/GetVar.hs @@ -12,13 +12,14 @@ import Control.Monad.Trans.Maybe (MaybeT) import Data.Maybe.Utils (maybeToMPlus) import Data.UUID.Types (UUID) import Data.Store.Transaction (Transaction) +import qualified Lamdu.Calc.Type as T +import qualified Lamdu.Calc.Val as V import qualified Lamdu.Data.Anchors as Anchors import qualified Lamdu.Data.Ops as DataOps import Lamdu.Expr.IRef (DefI) import qualified Lamdu.Expr.IRef as ExprIRef import qualified Lamdu.Expr.Lens as ExprLens import qualified Lamdu.Expr.UniqueId as UniqueId -import qualified Lamdu.Expr.Val as V import qualified Lamdu.Infer as Infer import Lamdu.Sugar.Convert.Expression.Actions (addActions) import qualified Lamdu.Sugar.Convert.Input as Input @@ -100,7 +101,7 @@ convertParamsRecord param exprPl = GetParamsRecord ParamsRecordVar { _prvFieldNames = exprPl - ^.. Input.inferredType . ExprLens._TRecord . ExprLens.compositeTags + ^.. Input.inferredType . T._TRecord . ExprLens.compositeTags <&> UniqueId.toUUID } & return diff --git a/Lamdu/Sugar/Convert/Hole.hs b/Lamdu/Sugar/Convert/Hole.hs index 600b18bea..4bc6c4e26 100644 --- a/Lamdu/Sugar/Convert/Hole.hs +++ b/Lamdu/Sugar/Convert/Hole.hs @@ -28,6 +28,11 @@ import qualified Data.Store.Transaction as Transaction import Data.UUID.Types (UUID) import qualified Lamdu.Builtins.Anchors as Builtins import qualified Lamdu.Builtins.PrimVal as PrimVal +import Lamdu.Calc.Type (Type(..)) +import qualified Lamdu.Calc.Type as T +import qualified Lamdu.Calc.Val as V +import Lamdu.Calc.Val.Annotated (Val(..)) +import qualified Lamdu.Calc.Val.Annotated as Val import qualified Lamdu.Data.Anchors as Anchors import qualified Lamdu.Expr.GenIds as GenIds import qualified Lamdu.Expr.IRef as ExprIRef @@ -36,11 +41,7 @@ import qualified Lamdu.Expr.Lens as ExprLens import qualified Lamdu.Expr.Load as Load import qualified Lamdu.Expr.Pure as P import qualified Lamdu.Expr.Pure as Pure -import Lamdu.Expr.Type (Type(..)) import qualified Lamdu.Expr.UniqueId as UniqueId -import qualified Lamdu.Expr.Val as V -import Lamdu.Expr.Val.Annotated (Val(..)) -import qualified Lamdu.Expr.Val.Annotated as Val import qualified Lamdu.Infer as Infer import Lamdu.Infer.Unify (unify) import Lamdu.Infer.Update (Update, update) @@ -382,10 +383,10 @@ idTranslations consistentExpr dest = concat [ pairUp Val.payload , pairUp params - , pairUpTags ExprLens._BRecExtend EntityId.ofRecExtendTag - , pairUpTags ExprLens._BGetField EntityId.ofGetFieldTag - , pairUpTags ExprLens._BCase EntityId.ofCaseTag - , pairUpTags ExprLens._BInject EntityId.ofInjectTag + , pairUpTags V._BRecExtend EntityId.ofRecExtendTag + , pairUpTags V._BGetField EntityId.ofGetFieldTag + , pairUpTags V._BCase EntityId.ofCaseTag + , pairUpTags V._BInject EntityId.ofInjectTag , pairUpLambdaRecordParams (consistentExpr <&> snd) dest ] | otherwise = @@ -403,7 +404,7 @@ idTranslations consistentExpr dest ) | tag <- srcType ^.. - ExprLens._TFun . _1 . ExprLens._TRecord . ExprLens.compositeTags + T._TFun . _1 . T._TRecord . ExprLens.compositeTags ] ++ recurse _ -> recurse where @@ -418,7 +419,7 @@ idTranslations consistentExpr dest pairUp $ Lens.filtered (Lens.has (Val.body . prism)) . Val.payload . Lens.to toEntityId params = - Val.body . ExprLens._BLam . V.lamParamId . + Val.body . V._BLam . V.lamParamId . Lens.to EntityId.ofLambdaParam eitherTtoListT :: Monad m => EitherT err m a -> ListT m a diff --git a/Lamdu/Sugar/Convert/Hole/ResultScore.hs b/Lamdu/Sugar/Convert/Hole/ResultScore.hs index 430117e5f..c9027fb48 100644 --- a/Lamdu/Sugar/Convert/Hole/ResultScore.hs +++ b/Lamdu/Sugar/Convert/Hole/ResultScore.hs @@ -5,10 +5,10 @@ module Lamdu.Sugar.Convert.Hole.ResultScore import qualified Control.Lens as Lens import Control.Lens.Operators import qualified Data.Map as Map +import Lamdu.Calc.Type (Type(..), Composite(..)) +import Lamdu.Calc.Val.Annotated (Val(..)) +import qualified Lamdu.Calc.Val as V import qualified Lamdu.Expr.Lens as ExprLens -import Lamdu.Expr.Type (Type(..), Composite(..)) -import Lamdu.Expr.Val.Annotated (Val(..)) -import qualified Lamdu.Expr.Val as V import qualified Lamdu.Infer as Infer resultTypeScore :: Type -> [Int] diff --git a/Lamdu/Sugar/Convert/Hole/Suggest.hs b/Lamdu/Sugar/Convert/Hole/Suggest.hs index be6664d14..e9b131f1f 100644 --- a/Lamdu/Sugar/Convert/Hole/Suggest.hs +++ b/Lamdu/Sugar/Convert/Hole/Suggest.hs @@ -15,15 +15,15 @@ import Control.Monad.Trans.State (StateT(..), mapStateT) import Data.Map (Map) import qualified Data.Map as Map import qualified Data.Set as Set +import Lamdu.Calc.Type (Type) +import qualified Lamdu.Calc.Type as T +import Lamdu.Calc.Type.Nominal (Nominal, _NominalType) +import qualified Lamdu.Calc.Type.Nominal as Nominal +import Lamdu.Calc.Type.Scheme (schemeType) +import qualified Lamdu.Calc.Val as V +import Lamdu.Calc.Val.Annotated (Val(..)) +import qualified Lamdu.Calc.Val.Annotated as Val import qualified Lamdu.Expr.Lens as ExprLens -import Lamdu.Expr.Nominal (Nominal, _NominalType) -import qualified Lamdu.Expr.Nominal as Nominal -import Lamdu.Expr.Scheme (schemeType) -import Lamdu.Expr.Type (Type) -import qualified Lamdu.Expr.Type as T -import qualified Lamdu.Expr.Val as V -import Lamdu.Expr.Val.Annotated (Val(..)) -import qualified Lamdu.Expr.Val.Annotated as Val import Lamdu.Infer (Context, Payload(..)) import qualified Lamdu.Infer as Infer import Lamdu.Infer.Update (update) @@ -45,7 +45,7 @@ loadNominalsForType loadNominal typ = let result = mappend res nominals let newTIds = nominals - ^. Lens.traversed . Lens.to Nominal.nType + ^. Lens.traversed . Nominal.nomType . _NominalType . schemeType . ExprLens.typeTIds . Lens.to Set.singleton & (`Set.difference` Map.keysSet result) @@ -89,8 +89,8 @@ valueConversionNoSplit nominals empty src = prependOpt src $ case srcType of T.TInst name _params - | Lens.has (Lens.ix name . Nominal.nominalType . Nominal._NominalType) nominals - && bodyNot ExprLens._BToNom -> + | Lens.has (Lens.ix name . Nominal.nomType . Nominal._NominalType) nominals + && bodyNot V._BToNom -> -- TODO: Expose primitives from Infer to do this without partiality do (_, resType) <- @@ -105,8 +105,8 @@ valueConversionNoSplit nominals empty src = & mapStateT (either (error "Infer of FromNom on non-opaque Nominal shouldn't fail") return) >>= valueConversionNoSplit nominals empty - T.TFun argType resType | bodyNot ExprLens._BLam -> - if Lens.has (ExprLens.valLeafs . ExprLens._LHole) arg + T.TFun argType resType | bodyNot V._BLam -> + if Lens.has (ExprLens.valLeafs . V._LHole) arg then -- If the suggested argument has holes in it -- then stop suggesting there to avoid "overwhelming".. @@ -117,7 +117,7 @@ valueConversionNoSplit nominals empty src = valueNoSplit (Payload argType srcScope) & Lens.traversed %~ flip (,) empty applied = V.Apply src arg & V.BApp & mkRes resType - T.TSum composite | bodyNot ExprLens._BInject -> + T.TSum composite | bodyNot V._BInject -> do dstType <- Infer.freshInferredVar srcScope "s" diff --git a/Lamdu/Sugar/Convert/Inject.hs b/Lamdu/Sugar/Convert/Inject.hs index 297d6d0b9..c347166ab 100644 --- a/Lamdu/Sugar/Convert/Inject.hs +++ b/Lamdu/Sugar/Convert/Inject.hs @@ -5,11 +5,11 @@ module Lamdu.Sugar.Convert.Inject import qualified Control.Lens as Lens import Control.Lens.Operators +import qualified Lamdu.Calc.Val as V +import Lamdu.Calc.Val.Annotated (Val) +import qualified Lamdu.Calc.Val.Annotated as Val import qualified Lamdu.Expr.Lens as ExprLens import qualified Lamdu.Expr.UniqueId as UniqueId -import qualified Lamdu.Expr.Val as V -import Lamdu.Expr.Val.Annotated (Val) -import qualified Lamdu.Expr.Val.Annotated as Val import Lamdu.Sugar.Convert.Expression.Actions (addActions, addActionsWithSetToInner) import qualified Lamdu.Sugar.Convert.Input as Input import Lamdu.Sugar.Convert.Monad (ConvertM) diff --git a/Lamdu/Sugar/Convert/Input.hs b/Lamdu/Sugar/Convert/Input.hs index e4e553703..f608c01fc 100644 --- a/Lamdu/Sugar/Convert/Input.hs +++ b/Lamdu/Sugar/Convert/Input.hs @@ -14,11 +14,11 @@ import Control.Lens.Operators import Data.CurAndPrev (CurAndPrev(..)) import Data.Map (Map) import qualified Data.Map as Map +import Lamdu.Calc.Type (Type) +import qualified Lamdu.Calc.Val as V +import Lamdu.Calc.Val.Annotated (Val(..)) import qualified Lamdu.Eval.Results as ER import Lamdu.Expr.IRef (ValIProperty) -import Lamdu.Expr.Type (Type) -import qualified Lamdu.Expr.Val as V -import Lamdu.Expr.Val.Annotated (Val(..)) import qualified Lamdu.Infer as Infer import Lamdu.Sugar.EntityId (EntityId) diff --git a/Lamdu/Sugar/Convert/Monad.hs b/Lamdu/Sugar/Convert/Monad.hs index 9248bf06e..2831bf872 100644 --- a/Lamdu/Sugar/Convert/Monad.hs +++ b/Lamdu/Sugar/Convert/Monad.hs @@ -27,13 +27,13 @@ import Data.Set (Set) import qualified Data.Store.Property as Property import Data.Store.Transaction (Transaction) import qualified Data.Store.Transaction as Transaction +import Lamdu.Calc.Type.Nominal (Nominal(..)) +import qualified Lamdu.Calc.Type as T +import qualified Lamdu.Calc.Val as V +import Lamdu.Calc.Val.Annotated (Val) import qualified Lamdu.Data.Anchors as Anchors import qualified Lamdu.Data.Ops as DataOps import qualified Lamdu.Expr.IRef as ExprIRef -import Lamdu.Expr.Nominal (Nominal(..)) -import qualified Lamdu.Expr.Type as T -import qualified Lamdu.Expr.Val as V -import Lamdu.Expr.Val.Annotated (Val) import qualified Lamdu.Infer as Infer import qualified Lamdu.Sugar.Convert.Input as Input import Lamdu.Sugar.Internal diff --git a/Lamdu/Sugar/Convert/Nominal.hs b/Lamdu/Sugar/Convert/Nominal.hs index 941a2d2b8..8d9468567 100644 --- a/Lamdu/Sugar/Convert/Nominal.hs +++ b/Lamdu/Sugar/Convert/Nominal.hs @@ -7,8 +7,8 @@ import Control.Lens.Operators import Control.Monad.Trans.Class (lift) import Control.Monad.Trans.Either.Utils (runMatcherT, justToLeft) import Data.UUID.Types (UUID) -import qualified Lamdu.Expr.Val as V -import Lamdu.Expr.Val.Annotated (Val(..)) +import qualified Lamdu.Calc.Val as V +import Lamdu.Calc.Val.Annotated (Val(..)) import Lamdu.Sugar.Convert.Expression.Actions (addActionsWithSetToInner) import qualified Lamdu.Sugar.Convert.Input as Input import Lamdu.Sugar.Convert.Monad (ConvertM) diff --git a/Lamdu/Sugar/Convert/ParamList.hs b/Lamdu/Sugar/Convert/ParamList.hs index 8fbba8717..4df78a04e 100644 --- a/Lamdu/Sugar/Convert/ParamList.hs +++ b/Lamdu/Sugar/Convert/ParamList.hs @@ -12,14 +12,14 @@ import qualified Control.Monad.Trans.State as State import qualified Data.Store.Property as Property import Data.Store.Transaction (Transaction) import qualified Data.Store.Transaction as Transaction +import Lamdu.Calc.Type (Type) +import qualified Lamdu.Calc.Type as T +import qualified Lamdu.Calc.Val as V +import Lamdu.Calc.Val.Annotated (Val(..)) import Lamdu.Data.Anchors (ParamList, assocFieldParamList) import qualified Lamdu.Expr.IRef as ExprIRef import qualified Lamdu.Expr.IRef.Infer as IRefInfer import qualified Lamdu.Expr.Lens as ExprLens -import Lamdu.Expr.Type (Type) -import qualified Lamdu.Expr.Type as T -import qualified Lamdu.Expr.Val as V -import Lamdu.Expr.Val.Annotated (Val(..)) import Lamdu.Infer (Infer) import qualified Lamdu.Infer as Infer import Lamdu.Infer.Unify (unify) diff --git a/Lamdu/Sugar/Convert/Record.hs b/Lamdu/Sugar/Convert/Record.hs index 714862de0..8730b6cb0 100644 --- a/Lamdu/Sugar/Convert/Record.hs +++ b/Lamdu/Sugar/Convert/Record.hs @@ -13,14 +13,14 @@ import qualified Data.Store.Property as Property import Data.Store.Transaction (Transaction) import qualified Data.Store.Transaction as Transaction import Data.UUID.Types (UUID) +import qualified Lamdu.Calc.Type as T +import qualified Lamdu.Calc.Val as V +import qualified Lamdu.Calc.Val.Annotated as Val +import Lamdu.Calc.Val.Annotated (Val(..)) import Lamdu.Data.Anchors (assocTagOrder) import qualified Lamdu.Data.Ops as DataOps import qualified Lamdu.Expr.IRef as ExprIRef -import qualified Lamdu.Expr.Type as T import qualified Lamdu.Expr.UniqueId as UniqueId -import qualified Lamdu.Expr.Val.Annotated as Val -import qualified Lamdu.Expr.Val as V -import Lamdu.Expr.Val.Annotated (Val(..)) import Lamdu.Sugar.Convert.Expression.Actions (addActions) import qualified Lamdu.Sugar.Convert.Input as Input import Lamdu.Sugar.Convert.Monad (ConvertM) diff --git a/Lamdu/Sugar/Convert/TIdG.hs b/Lamdu/Sugar/Convert/TIdG.hs index 42ef9e5f0..2ba912f8b 100644 --- a/Lamdu/Sugar/Convert/TIdG.hs +++ b/Lamdu/Sugar/Convert/TIdG.hs @@ -3,7 +3,7 @@ module Lamdu.Sugar.Convert.TIdG ) where import Data.UUID.Types (UUID) -import qualified Lamdu.Expr.Type as T +import qualified Lamdu.Calc.Type as T import qualified Lamdu.Expr.UniqueId as UniqueId import Lamdu.Sugar.Types diff --git a/Lamdu/Sugar/Convert/Text.hs b/Lamdu/Sugar/Convert/Text.hs index 81d7713a5..136a62165 100644 --- a/Lamdu/Sugar/Convert/Text.hs +++ b/Lamdu/Sugar/Convert/Text.hs @@ -14,10 +14,10 @@ import Data.Store.Property (Property(..)) import qualified Data.Store.Property as Property import qualified Lamdu.Builtins.Anchors as Builtins import qualified Lamdu.Builtins.PrimVal as PrimVal +import qualified Lamdu.Calc.Val as V +import Lamdu.Calc.Val.Annotated (Val(..)) import qualified Lamdu.Expr.IRef as ExprIRef import qualified Lamdu.Expr.Lens as ExprLens -import qualified Lamdu.Expr.Val as V -import Lamdu.Expr.Val.Annotated (Val(..)) import Lamdu.Sugar.Convert.Expression.Actions (addActions) import qualified Lamdu.Sugar.Convert.Input as Input import Lamdu.Sugar.Convert.Monad (ConvertM) diff --git a/Lamdu/Sugar/Internal/EntityId.hs b/Lamdu/Sugar/Internal/EntityId.hs index 683794fa5..a6b345365 100644 --- a/Lamdu/Sugar/Internal/EntityId.hs +++ b/Lamdu/Sugar/Internal/EntityId.hs @@ -18,12 +18,12 @@ import Data.Hashable (Hashable) import Data.UUID.Types (UUID) import qualified Data.UUID.Utils as UUIDUtils import Data.Store.IRef (IRef) +import qualified Lamdu.Calc.Type as T +import Lamdu.Calc.Val.Annotated (Val) +import qualified Lamdu.Calc.Val as V import qualified Lamdu.Expr.GenIds as GenIds import qualified Lamdu.Expr.IRef as ExprIRef -import qualified Lamdu.Expr.Type as T import qualified Lamdu.Expr.UniqueId as UniqueId -import Lamdu.Expr.Val.Annotated (Val) -import qualified Lamdu.Expr.Val as V import System.Random (RandomGen) newtype EntityId = EntityId UUID diff --git a/Lamdu/Sugar/Lens.hs b/Lamdu/Sugar/Lens.hs index d5cbba9af..29dcc5f40 100644 --- a/Lamdu/Sugar/Lens.hs +++ b/Lamdu/Sugar/Lens.hs @@ -20,8 +20,8 @@ import Control.Lens.Operators import Control.Lens.Tuple import Control.Monad (void) import Data.Store.Transaction (Transaction) +import Lamdu.Calc.Type.Scheme (Scheme) import qualified Lamdu.Data.Definition as Def -import Lamdu.Expr.Scheme (Scheme) import Lamdu.Sugar.Types import Prelude.Compat diff --git a/Lamdu/Sugar/Names/Walk.hs b/Lamdu/Sugar/Names/Walk.hs index 427d6aed6..40405eea8 100644 --- a/Lamdu/Sugar/Names/Walk.hs +++ b/Lamdu/Sugar/Names/Walk.hs @@ -10,8 +10,8 @@ module Lamdu.Sugar.Names.Walk import Control.Lens.Operators import Data.Store.Transaction (Transaction) -import Lamdu.Expr.Type (Type) -import qualified Lamdu.Expr.Type as T +import Lamdu.Calc.Type (Type) +import qualified Lamdu.Calc.Type as T import Lamdu.Sugar.Names.CPS (CPS(..)) import qualified Lamdu.Sugar.Names.NameGen as NameGen import Lamdu.Sugar.Types diff --git a/Lamdu/Sugar/OrderTags.hs b/Lamdu/Sugar/OrderTags.hs index 003cf6883..2a104a04d 100644 --- a/Lamdu/Sugar/OrderTags.hs +++ b/Lamdu/Sugar/OrderTags.hs @@ -14,12 +14,12 @@ import qualified Data.Map as Map import Data.Store.Transaction (Transaction) import qualified Data.Store.Transaction as Transaction import Lamdu.Data.Anchors (assocTagOrder) -import Lamdu.Expr.FlatComposite (FlatComposite(..)) -import qualified Lamdu.Expr.FlatComposite as FlatComposite +import Lamdu.Calc.Type (Type) +import qualified Lamdu.Calc.Type as T +import Lamdu.Calc.Type.FlatComposite (FlatComposite(..)) +import qualified Lamdu.Calc.Type.FlatComposite as FlatComposite +import qualified Lamdu.Calc.Type.Scheme as S import qualified Lamdu.Expr.Lens as ExprLens -import qualified Lamdu.Expr.Scheme as S -import Lamdu.Expr.Type (Type) -import qualified Lamdu.Expr.Type as T import qualified Lamdu.Sugar.Lens as SugarLens import qualified Lamdu.Sugar.Types as Sugar @@ -48,8 +48,8 @@ orderComposite c = orderType :: Monad m => Order m Type orderType t = t - & ExprLens._TRecord %%~ orderComposite - >>= ExprLens._TSum %%~ orderComposite + & T._TRecord %%~ orderComposite + >>= T._TSum %%~ orderComposite >>= ExprLens.nextLayer orderType orderRecord :: Monad m => Order m (Sugar.Record name f a) diff --git a/Lamdu/Sugar/Types.hs b/Lamdu/Sugar/Types.hs index 8352911d0..ac5dcb33f 100644 --- a/Lamdu/Sugar/Types.hs +++ b/Lamdu/Sugar/Types.hs @@ -102,15 +102,15 @@ import Data.Functor.Identity (Identity(..)) import Data.Map (Map) import Data.Store.Transaction (Transaction, MkProperty, Property) import Data.UUID.Types (UUID) +import Lamdu.Calc.Type (Type) +import qualified Lamdu.Calc.Type as T +import Lamdu.Calc.Type.Scheme (Scheme) +import qualified Lamdu.Calc.Val as V +import Lamdu.Calc.Val.Annotated (Val) import Lamdu.Data.Anchors (BinderParamScopeId(..), bParamScopeId) import qualified Lamdu.Data.Anchors as Anchors import qualified Lamdu.Data.Definition as Definition import qualified Lamdu.Eval.Results as ER -import Lamdu.Expr.Scheme (Scheme) -import Lamdu.Expr.Type (Type) -import qualified Lamdu.Expr.Type as T -import qualified Lamdu.Expr.Val as V -import Lamdu.Expr.Val.Annotated (Val) import Lamdu.Sugar.Internal.EntityId (EntityId) import Prelude.Compat diff --git a/stack.yaml b/stack.yaml index bbf170b03..d96027cd0 100644 --- a/stack.yaml +++ b/stack.yaml @@ -1,5 +1,11 @@ packages: - . +- location: + git: https://github.com/lamdu/lamdu-calculus + commit: 257003d90ea0f191ebfd15273cc009cd7463e997 +- location: + git: https://github.com/lamdu/Algorithm-W-Step-By-Step + commit: e05886d2392005936f46c3fa75aa624317659bc4 - location: git: https://github.com/lamdu/graphics-drawingcombinators commit: 2d8f9efb610dcf69c28ae9fbb8799565cef10612 diff --git a/submodules/AlgoW b/submodules/AlgoW deleted file mode 160000 index 1bb1c3f24..000000000 --- a/submodules/AlgoW +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 1bb1c3f248bef25fc903e11be01f0752a71d3916