@@ -31,7 +31,8 @@ instance SExpable Bool where
3131 toSExp False = BoolAtom False
3232
3333instance SExpable String where
34− toSExp s = StringAtom s
34+ toSExp (':' : xs) = SymbolAtom xs
35+ toSExp s = StringAtom s
3536
3637instance SExpable Integer where
3738 toSExp n = IntegerAtom n
@@ -79,12 +80,14 @@ parseSExp input = parse pSExp "(unknown)" input
7980
8081data IdeSlaveCommand = REPLCompletions String
8182 | Interpret String
83+ | LoadFile String
8284 deriving Show
8385
8486sexpToCommand :: SExp -> Maybe IdeSlaveCommand
8587sexpToCommand (List (x:[])) = sexpToCommand x
8688sexpToCommand (List [SymbolAtom "interpret", StringAtom cmd]) = Just (Interpret cmd)
8789sexpToCommand (List [SymbolAtom "repl-completions", StringAtom prefix]) = Just (REPLCompletions prefix)
90+sexpToCommand (List [SymbolAtom "load-file", StringAtom filename]) = Just (LoadFile filename)
8891sexpToCommand _ = Nothing
8992
9093receiveMessage :: IO (SExp)