Code common to all the scheme backend In most cases the inital `Nat` argument is the number of cases a given expression is under. it is used to generate new unique names for the scrutinee of a case block
firstExists : List String -> IO (Maybe String)schUserName : UserName -> BuilderschName : Name -> BuilderschConstructor : (String -> Builder) -> Name -> Maybe Int -> List Builder -> BuilderschRecordCon : (String -> Builder) -> Name -> List Builder -> Builderdata ExtPrim : TypeExtended primitives for the scheme backend, outside the standard set of primFn
NewIORef : ExtPrimReadIORef : ExtPrimWriteIORef : ExtPrimNewArray : ExtPrimArrayGet : ExtPrimArraySet : ExtPrimGetField : ExtPrimSetField : ExtPrimSysOS : ExtPrimSysCodegen : ExtPrimOnCollect : ExtPrimOnCollectAny : ExtPrimUnknown : Name -> ExtPrimShow ExtPrimmkWorld : Builder -> BuilderschArglist : List Name -> Builderrecord LazyExprProc : TypeMkLazyExprProc : (Builder -> Builder) -> (Builder -> Builder) -> LazyExprProc.processDelay : LazyExprProc -> Builder -> Builder.processForce : LazyExprProc -> Builder -> Builder.processDelay : LazyExprProc -> Builder -> BuilderprocessDelay : LazyExprProc -> Builder -> Builder.processForce : LazyExprProc -> Builder -> BuilderprocessForce : LazyExprProc -> Builder -> BuilderdefaultLaziness : LazyExprProcweakMemoLaziness : LazyExprProcschExp : SortedSet Name -> (Nat -> ExtPrim -> List NamedCExp -> Core Builder) -> (String -> Builder) -> LazyExprProc -> Nat -> NamedCExp -> Core BuilderschExtCommon : SortedSet Name -> (Nat -> ExtPrim -> List NamedCExp -> Core Builder) -> (String -> Builder) -> LazyExprProc -> Nat -> ExtPrim -> List NamedCExp -> Core BuildergetScheme : Ref Ctxt Defs => SortedSet Name -> (Nat -> ExtPrim -> List NamedCExp -> Core Builder) -> (String -> Builder) -> LazyExprProc -> (Name, (FC, NamedDef)) -> Core Builder