module Equation.ImpList where import Language.Haskell.TH import Language.Haskell.ER.Syntax import Language.Haskell.ER.HaskellRewrite import Language.Haskell.ER.MiscRewrite import Language.Haskell.ER.Utils import Language.Haskell.ER.Frees import Program.ImpList import ImpList dictionary :: [ UniHaskellRewrite ] dictionary = map HaskellRewriteExp [ equation "@/hacks/ImpList/id" $(quote [| a |]) $(quote [| ImpList.id a |]) Nothing {- , equation "/Program/ImpList/Equations/listToMyList xs" $(quote [| ImpList.listToMyList xs |]) $(quote [| do ixs <- ImpList.listToMyList [] () <- ImpList.appendListToMyList ixs (myListToList xs return ixs |]) -} , equation "/Program/ImpList/Equations/listToMyList (x : xs)" $(quote [| ImpList.listToMyList (x : xs) |]) $(quote [| do ixs <- ImpList.listToMyList [x] ImpList.appendListToMyList ixs xs return ixs |]) Nothing , equation "/Program/ImpList/Equations/listToMyList (xs ++ ys)" $(quote [| ImpList.listToMyList (xs ++ ys) |]) $(quote [| do ixs <- ImpList.listToMyList [] ImpList.appendListToMyList ixs xs ImpList.appendListToMyList ixs ys return ixs |]) Nothing , equation "/Program/ImpList/Equations/do { v <- myListToList xs ; return (listToMyList v) } => return xs" $(quote [| do { v <- ImpList.myListToList xs ; return (ImpList.listToMyList v) } |]) $(quote [| return xs |]) Nothing , equation "/Program/ImpList/Equations/appendListToMyList ixs [] = return ()" $(quote [| ImpList.appendListToMyList ixs [] |]) $(quote [| return () |]) Nothing , equation "/Program/ImpList/Equations/appendListToMyList ixs (x:xs) = do { .. ixs [x] ; .. ixs xs }" $(quote [| ImpList.appendListToMyList ixs (x:xs) |]) $(quote [| do { ImpList.appendListToMyList ixs [x] ; ImpList.appendListToMyList ixs xs } |]) Nothing , equation "/Program/ImpList/Equations/appendListToMyList ixs (xs ++ys) = do { .. ixs xs ; .. ixs ys }" $(quote [| ImpList.appendListToMyList ixs (xs ++ ys) |]) $(quote [| do { ImpList.appendListToMyList ixs xs ; ImpList.appendListToMyList ixs ys } |]) Nothing , equation "/Program/ImpList/Equations/fusion of append and mylistBuilding" $(quote [| ImpList.appendListToMyList ixs (ImpList.myListBuildingToList f) |]) $(quote [| f ixs |]) Nothing ]