cleanup a little bit
This commit is contained in:
@@ -2,7 +2,6 @@ module Lib.Common
|
||||
|
||||
import Data.String
|
||||
import Data.Int
|
||||
import Data.Maybe
|
||||
import Data.SortedMap
|
||||
|
||||
-- l is environment size, this works for both lvl2ix and ix2lvl
|
||||
|
||||
@@ -6,7 +6,6 @@ import Lib.Prettier
|
||||
import Lib.CompileExp
|
||||
import Lib.TopContext
|
||||
import Data.String
|
||||
import Data.Maybe
|
||||
import Data.Int
|
||||
|
||||
data StKind = Plain | Return | Assign String
|
||||
|
||||
@@ -7,17 +7,13 @@
|
||||
-- I could make names unique (e.q. on lambdas), but I might want that to vary per backend?
|
||||
module Lib.CompileExp
|
||||
|
||||
import Data.List
|
||||
|
||||
import Lib.Types -- Name / Tm
|
||||
import Lib.TopContext
|
||||
import Lib.Prettier
|
||||
import Lib.Util
|
||||
|
||||
|
||||
CExp : U
|
||||
|
||||
|
||||
data CAlt : U where
|
||||
CConAlt : String -> List String -> CExp -> CAlt
|
||||
-- REVIEW keep var name?
|
||||
|
||||
@@ -2,7 +2,6 @@ module Lib.Elab
|
||||
|
||||
import Lib.Parser.Impl
|
||||
import Lib.Prettier
|
||||
import Data.List
|
||||
import Data.String
|
||||
import Data.IORef
|
||||
import Lib.Types
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
module Lib.Erasure
|
||||
|
||||
import Lib.Types
|
||||
import Data.Maybe
|
||||
import Data.SnocList
|
||||
import Lib.TopContext
|
||||
|
||||
|
||||
@@ -4,10 +4,7 @@ import Lib.Types
|
||||
import Lib.TopContext
|
||||
|
||||
import Data.IORef
|
||||
import Data.Fin
|
||||
import Data.List
|
||||
import Data.SnocList
|
||||
import Data.Vect
|
||||
import Data.SortedMap
|
||||
|
||||
|
||||
@@ -252,7 +249,7 @@ nfv env t = eval env CBV t >>= quote (length' env)
|
||||
prvalCtx : {{ctx : Context}} -> Val -> M String
|
||||
prvalCtx {{ctx}} v = do
|
||||
tm <- quote ctx.lvl v
|
||||
pure $ interpolate $ pprint (map fst ctx.types) tm
|
||||
pure $ render 90 $ pprint (map fst ctx.types) tm
|
||||
|
||||
-- REVIEW - might be easier if we inserted the meta without a bunch of explicit App
|
||||
-- I believe Kovacs is doing that.
|
||||
|
||||
@@ -2,7 +2,6 @@ module Lib.Parser
|
||||
|
||||
-- NOW Still working on this.
|
||||
|
||||
import Data.Maybe
|
||||
import Data.String
|
||||
import Lib.Parser.Impl
|
||||
import Lib.Syntax
|
||||
|
||||
@@ -2,9 +2,7 @@
|
||||
-- https://homepages.inf.ed.ac.uk/wadler/papers/prettier/prettier.pdf
|
||||
module Lib.Prettier
|
||||
|
||||
import Data.String
|
||||
import Data.Int
|
||||
import Data.Maybe
|
||||
|
||||
-- `Doc` is a pretty printing document. Constructors are private, use
|
||||
-- methods below. `Alt` in particular has some invariants on it, see paper
|
||||
@@ -150,7 +148,3 @@ fill (x :: y :: xs) = Alt (flatten x <+> fill (flatten y :: xs)) (x </> fill (y
|
||||
commaSep : List Doc -> Doc
|
||||
commaSep = folddoc (\a b => a ++ text "," <+/> b)
|
||||
|
||||
-- If we stick Doc into a String, try to avoid line-breaks via `flatten`
|
||||
|
||||
instance Interpolation Doc where
|
||||
interpolate = render 80 ∘ flatten
|
||||
|
||||
@@ -2,9 +2,6 @@ module Lib.ProcessDecl
|
||||
|
||||
import Data.IORef
|
||||
import Data.String
|
||||
import Data.Vect
|
||||
import Data.List
|
||||
import Data.Maybe
|
||||
|
||||
import Lib.Elab
|
||||
import Lib.Parser
|
||||
@@ -78,7 +75,7 @@ logMetas mstart = do
|
||||
matches <- findMatches ctx ty $ map snd $ toList top.defs
|
||||
-- TODO try putting mc into TopContext for to see if it gives better terms
|
||||
pure $ (" \{show $ length' matches} Solutions: \{show matches}" :: Nil)
|
||||
-- pure $ " \{show $ length' matches} Solutions:" :: map ((" " ++) ∘ interpolate ∘ pprint (names ctx) ∘ fst) matches
|
||||
-- pure $ " \{show $ length' matches} Solutions:" :: map ((" " ++) ∘ render 90 ∘ pprint (names ctx) ∘ fst) matches
|
||||
|
||||
_ => pure Nil
|
||||
info fc $ unlines ((msg :: Nil) ++ msgs ++ sols)
|
||||
@@ -262,7 +259,7 @@ processDecl ns (Instance instfc ty decls) = do
|
||||
-- ok so we need a name, a hack for now.
|
||||
-- Maybe we need to ask the user (e.g. `instance someName : Monad Foo where`)
|
||||
-- or use "Monad\{show $ length' defs}"
|
||||
let instname = interpolate $ pprint Nil codomain
|
||||
let instname = render 90 $ pprint Nil codomain
|
||||
let sigDecl = TypeSig instfc (instname :: Nil) ty
|
||||
-- This needs to be declared before processing the defs, but the defs need to be
|
||||
-- declared before this - side effect is that a duplicate def is noted at the first
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
module Lib.Syntax
|
||||
|
||||
import Data.String
|
||||
import Data.Maybe
|
||||
import Lib.Parser.Impl
|
||||
import Lib.Prettier
|
||||
import Lib.Types
|
||||
|
||||
@@ -4,13 +4,10 @@ module Lib.Types
|
||||
import Lib.Common
|
||||
import Lib.Prettier
|
||||
|
||||
import Data.Fin
|
||||
import Data.IORef
|
||||
import Data.List
|
||||
import Data.SnocList
|
||||
import Data.SortedMap
|
||||
import Data.String
|
||||
import Data.Vect
|
||||
|
||||
data QName : U where
|
||||
QN : List String -> String -> QName
|
||||
@@ -22,9 +19,6 @@ instance Show QName where
|
||||
show (QN Nil n) = n
|
||||
show (QN ns n) = joinBy "." ns ++ "." ++ n
|
||||
|
||||
instance Interpolation QName where
|
||||
interpolate = show
|
||||
|
||||
instance Ord QName where
|
||||
compare (QN ns nm) (QN ns' nm') = if ns == ns' then compare nm nm' else compare ns ns'
|
||||
|
||||
|
||||
Reference in New Issue
Block a user