{-# LANGUAGE MagicHash #-}
{-# LANGUAGE UnboxedTuples #-}
{-# LANGUAGE NoImplicitPrelude #-}
module Main (main) where
import GHC.Exts
length xs
= case newMutVar#
0 realWorld#
of (# s, var #) -> worker# var s xs
where
worker# v s xs = case readMutVar# v s of
(# s', l@(I# l#) #) -> case xs of
[] -> l
(_:xs) -> worker# v (writeMutVar# v (I# (l# +# 1#)) s') xs
ey0jIExBTkdVQUdFIE1hZ2ljSGFzaCAjLX0Key0jIExBTkdVQUdFIFVuYm94ZWRUdXBsZXMgIy19CnstIyBMQU5HVUFHRSBOb0ltcGxpY2l0UHJlbHVkZSAjLX0KbW9kdWxlIE1haW4gKG1haW4pIHdoZXJlCgppbXBvcnQgUHJlbHVkZSBoaWRpbmcgKGxlbmd0aCkKaW1wb3J0IEdIQy5FeHRzCgpsZW5ndGggOjogW2FdIC0+IEludApsZW5ndGggeHMgPSBjYXNlIG5ld011dFZhciMgMCByZWFsV29ybGQjIG9mCiAgKCMgcywgdmFyICMpIC0+IHdvcmtlciMgdmFyIHMgeHMKICB3aGVyZQogICAgd29ya2VyIyB2IHMgeHMgPSBjYXNlIHJlYWRNdXRWYXIjIHYgcyBvZgogICAgICAoIyBzJywgbEAoSSMgbCMpICMpIC0+IGNhc2UgeHMgb2YKICAgICAgICBbXSAgICAgLT4gbAogICAgICAgIChfOnhzKSAtPiB3b3JrZXIjIHYgKHdyaXRlTXV0VmFyIyB2IChJIyAobCMgKyMgMSMpKSBzJykgeHMKCm1haW4gOjogSU8gKCkKbWFpbiA9IHByaW50IChsZW5ndGggWzEsIDIsIDMsIDQsIDUsIDZdKQ==