diff --git a/State/Pristine.hs.default b/State/Pristine.hs.default
--- a/State/Pristine.hs.default
+++ b/State/Pristine.hs.default
@@ -1,169 +1,78 @@
 {-# LANGUAGE Safe #-}
 
-{-# LANGUAGE BangPatterns #-}
 {-# LANGUAGE ConstrainedClassMethods #-}
-{-# LANGUAGE ConstraintKinds #-}
-{-# LANGUAGE DataKinds #-}
 {-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE DeriveFoldable #-}
 {-# LANGUAGE DeriveFunctor #-}
 {-# LANGUAGE DeriveGeneric #-}
 {-# LANGUAGE DeriveTraversable #-}
-{-# LANGUAGE EmptyCase #-}
 {-# LANGUAGE EmptyDataDecls #-}
 {-# LANGUAGE ExistentialQuantification #-}
 {-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE FlexibleInstances #-}
 {-# LANGUAGE FunctionalDependencies #-}
-{-# LANGUAGE GADTs #-}
 {-# LANGUAGE ImplicitParams #-}
 {-# LANGUAGE KindSignatures #-}
 {-# LANGUAGE LiberalTypeSynonyms #-}
 {-# LANGUAGE MagicHash #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE NoMonomorphismRestriction #-}
 {-# LANGUAGE PackageImports #-}
 {-# LANGUAGE ParallelListComp #-}
 {-# LANGUAGE PatternGuards #-}
-{-# LANGUAGE PolyKinds #-}
 {-# LANGUAGE PolymorphicComponents #-}
 {-# LANGUAGE PostfixOperators #-}
 {-# LANGUAGE RankNTypes #-}
 {-# LANGUAGE ScopedTypeVariables #-}
 {-# LANGUAGE StandaloneDeriving #-}
-{-# LANGUAGE TupleSections #-}
-{-# LANGUAGE TypeFamilies #-}
 {-# LANGUAGE TypeOperators #-}
 {-# LANGUAGE TypeSynonymInstances #-}
 {-# LANGUAGE UnboxedTuples #-}
-{-# LANGUAGE UndecidableInstances #-}
 {-# LANGUAGE UnicodeSyntax #-}
-{-# LANGUAGE ViewPatterns #-}
-
 module L where
--- TODO: unordered-containters, text, vector (+ lenses thereof)
 import Control.Applicative
 import Control.Arrow
-import Control.Category (Category)
-import qualified Control.Category as C
-import Control.Exception
-import Control.Exception.Lens
-import Control.Lens hiding (index, indices)
-import qualified Control.Lens as Lens
-import qualified Control.Lens
 import Control.Monad
 import Control.Monad.Cont
-import Control.Monad.Except
-import Control.Monad.Error.Lens
-import Control.Monad.Fix
 import Control.Monad.Identity
--- import Control.Monad.Instances
-import Control.Monad.RWS
 import Control.Monad.Reader
 import Control.Monad.ST
 import Control.Monad.State
 import Control.Monad.Writer
--- import Control.Parallel
--- import Control.Parallel.Strategies
--- import Control.Parallel.Strategies.Lens
-import Data.Array
-import Data.Array.Lens
 import Data.Bits
-import Data.Bits.Lens
 import Data.Bool
 import Data.Char
 import Data.Complex
-import Data.Complex.Lens
-import Data.Data
-import Data.Data.Lens
-import Data.Default
 import Data.Dynamic
-import Data.Dynamic.Lens
 import Data.Either
 import Data.Eq
-import Data.Fixed
 import Data.Function
-import Data.Graph
 import Data.Int
-import Data.Ix
 import Data.List
-import Data.List.Lens
-import Data.List.Split
--- import Data.List.Split.Lens
 import Data.Maybe
 import Data.Monoid
--- import Data.Number.BigFloat
-import Data.Number.CReal
-import Data.Number.Interval
-import Data.Number.Natural
-import Data.Number.Symbolic hiding (var)
-import qualified Data.Number.Symbolic
-import qualified Data.Number.Symbolic as Sym
 import Data.Ord
 import Data.Ratio
 import Data.STRef
 import Data.Tree
-import Data.Tree.Lens
 import Data.Tuple
 import Data.Typeable
-import Data.Typeable.Lens
-import Data.Default
--- import Data.Void
--- import Data.Universe
 import Data.Word
-import Debug.SimpleReflect
 import Numeric
--- import Numeric.AD
--- import Numeric.AD.Types
-import Numeric.Lens
 import ShowFun
-import System.Random hiding (split)
-import qualified System.Random
-import qualified System.Random as R
-import Lambdabot.Plugin.Haskell.Eval.Trusted hiding ((.&.))
-import Text.PrettyPrint.HughesPJ hiding (empty, first, (<>))
-import qualified Text.PrettyPrint.HughesPJ
+import System.Random
+import Lambdabot.Plugin.Haskell.Eval.Trusted
+import Text.PrettyPrint.HughesPJ hiding (empty)
 import Text.Printf
 import qualified Data.ByteString as BS
 import qualified Data.ByteString.Char8 as BSC
 import qualified Data.ByteString.Lazy as BSL
 import qualified Data.ByteString.Lazy.Char8 as BSLC
-import Data.ByteString.Lens
-import qualified Data.Foldable as F
-import Data.Foldable (Foldable, fold, foldMap)
+import qualified Data.Foldable
 import qualified Data.IntMap as IM
 import qualified Data.IntSet as IS
 import qualified Data.Map as M
-import qualified Data.Sequence as Seq
-import Data.Sequence.Lens
+import qualified Data.Sequence
 import qualified Data.Set as S
-import Data.Set.Lens
-import qualified Data.Traversable as T
--- import Math.NumberTheory.GCD
--- import Math.NumberTheory.Logarithms
--- import Math.NumberTheory.Moduli
--- import Math.NumberTheory.MoebiusInversion
--- import Math.NumberTheory.Powers
--- import Math.NumberTheory.Primes
--- import Math.NumberTheory.Primes.Factorisation.Certified
--- import Math.NumberTheory.Primes.Testing.Certificates
-
-default ((),Integer,Double)
-
-infixl 0 `asTypeIn`
-asTypeIn :: a -> (a -> b) -> a
-x `asTypeIn` _ = x
-
-infixl 0 `asAppliedTo`
-asAppliedTo :: (a -> b) -> a -> a -> b
-asAppliedTo f _ = f
-
--- FIXME: should just import Mu from elsewhere and avoid duplicating
--- the instances/definitions
-cata :: Functor f => (f a -> a) -> Mu f -> a
-cata f = f . fmap (cata f) . out
-
--- TODO: source from a package? define in terms of lens' Equality?
--- data Is a b where Refl :: Is a a
+import qualified Data.Traversable
 
 {-# LINE 1 "<local>" #-}
diff --git a/lambdabot.cabal b/lambdabot.cabal
--- a/lambdabot.cabal
+++ b/lambdabot.cabal
@@ -1,5 +1,5 @@
 name:                   lambdabot
-version:                5.0.2
+version:                5.0.2.1
 
 license:                GPL
 license-file:           LICENSE
@@ -32,7 +32,8 @@
                         Changelog
                         README.md
 
-data-files:             State/haddock,
+data-files:             scripts/online.rc,
+                        State/haddock,
                         State/Pristine.hs.706,
                         State/Pristine.hs.708,
                         State/Pristine.hs.default,
diff --git a/scripts/online.rc b/scripts/online.rc
new file mode 100644
--- /dev/null
+++ b/scripts/online.rc
@@ -0,0 +1,46 @@
+irc-connect freenode chat.freenode.net 6667 lambdabot Lambda_Robots:_100%_Loyal
+rc passwd.rc
+admin + freenode:Cale
+admin + freenode:Igloo
+admin + freenode:Lemmih
+admin + freenode:Pseudonym
+admin + freenode:mauke
+admin + freenode:dons
+admin + freenode:gwern
+admin + freenode:igli
+admin + freenode:int-e
+admin + freenode:musasabi
+admin + freenode:shapr
+admin + freenode:sjanssen
+admin + freenode:sorear
+admin + freenode:vincenz
+join freenode:##logic
+join freenode:#arch-haskell
+join freenode:#darcs
+join freenode:#debian-es
+join freenode:#friendly-coders
+join freenode:#gentoo-haskell
+join freenode:#ghc
+join freenode:#happs
+join freenode:#haskell
+join freenode:#haskell-blah
+join freenode:#haskell-books
+join freenode:#haskell-overflow
+join freenode:#haskell-soc
+join freenode:#haskell.cz
+join freenode:#haskell.de
+join freenode:#haskell.dut
+join freenode:#haskell.es
+join freenode:#haskell.fi
+join freenode:#haskell.fr
+join freenode:#haskell.it
+join freenode:#haskell.jp
+join freenode:#haskell.se
+join freenode:#haskell_ru
+join freenode:#lessswrong
+join freenode:#macosx
+join freenode:#perl6
+join freenode:#rosettacode
+join freenode:#scala
+join freenode:#unicycling
+join freenode:#xmonad
diff --git a/src/Modules.hs b/src/Modules.hs
--- a/src/Modules.hs
+++ b/src/Modules.hs
@@ -18,6 +18,6 @@
     ++ haskellPlugins
     ++ ["irc", "localtime", "topic"] -- ircPlugins
     ++ ["dummy", "fresh", "todo"] -- miscPlugins
-    ++ ["bf", "dice", "elite", "filter", "quote", "slap", "unlambda"] -- noveltyPlugins
-    ++ ["dict", "metar", "oeis", "search", "spell", "ticker", "where"] -- referencePlugins
-    ++ ["activity", "karma", "poll", "tell"]) -- socialPlugins
+    ++ ["bf", "dice", "elite", "filter", "quote", "slap", "unlambda", "vixen"] -- noveltyPlugins
+    ++ referencePlugins
+    ++ socialPlugins)
